Горячий, чтобы добавить возможность поиска в UserProfile для UserAdmin в Django | search_fields w / ForeignKey

StackOverflow https://stackoverflow.com/questions/1806424

  •  05-07-2019
  •  | 
  •  

Вопрос

Я использую управление пользователями Django в сочетании с UserProfiles, которые связаны с моделью User с помощью ForeignKeys. Теперь я хотел бы сделать поля из профилей пользователей доступными для поиска из UserAdmin.

Моя лучшая догадка была для пользователя что-то вроде этого:

class UserAdmin(auth.admin.UserAdmin):

    def field_name(self, obj):
        return obj.get_profile().name

    list_display = ('field_name',)

    search_fields = ('field_name',)

Тогда как list_display работает нормально, search_fields выдает мне сообщение об ошибке при отправке запроса: Невозможно разрешить ключевое слово 'field_name' в поле. Возможные варианты: [...]

Есть ли у вас какие-либо подсказки, как это сделать? Заранее спасибо.

Это было полезно?

Решение

Вы можете использовать нотацию набора запросов с двойным подчеркиванием __, чтобы указать, например, объединения.

 search_fields = ('company_name','user__username')

http: // docs. djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships

для более

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top