Горячий добавить возможность поиска в UserProfile для UserAdmin в Django search_fields w / ForeignKey - PullRequest
2 голосов
/ 27 ноября 2009

Я использую управление пользователями 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' в поле. Варианты: [...]

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

1 Ответ

2 голосов
/ 27 ноября 2009

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

 search_fields = ('company_name','user__username')

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

для более

...