Ответ 1
Я нашел проблему благодаря этому сообщению в django-users.
Мне пришлось зарегистрировать в админе модель, на которую указывает ForeignKey
.
Поиск не работает без этого.
У меня есть следующий код в моей admin.py:
class UserManagedGroupAdmin(admin.ModelAdmin):
inlines = [MembershipInline]
search_fields = ('name', 'leader__username', )
list_display = ('__unicode__', 'leader', )
filter_horizontal = ('permissions', )
raw_id_fields = ('leader', )
admin.site.register(UserManagedGroup, UserManagedGroupAdmin)
Значок увеличительного стекла для поиска не отображается на странице администратора.
Это то, что я получаю:
Как вы можете видеть, он показывает метод unicode модели, а не значок поиска, который я хочу.
Поле 'leader'
- это от ForeignKey
до User
.
Может быть, django отключает поиск ForeignKeys
до User
по соображениям безопасности, или я делаю что-то неправильно?
Виджет будет идеально подходит для выбора пользователей... Я имею в виду, я не могу оставить огромный выбор там с каждым пользователем моего сайта.
Спасибо.
Я нашел проблему благодаря этому сообщению в django-users.
Мне пришлось зарегистрировать в админе модель, на которую указывает ForeignKey
.
Поиск не работает без этого.
В файле admin.py
добавьте:
admin.site.register(YourModel)
Это сделало трюк, где YourModel - модель, которая будет отображаться с увеличительным стеклом
Привет столкнуться с той же проблемой, но по другой причине.
Интегрировать User и UserGroup с другим администратором приложения (например, some_app
)
Я добавил код ниже в some_app/admin.py
class ProxyUser(User):
class Meta:
proxy = True
verbose_name = User._meta.verbose_name
verbose_name_plural = User._meta.verbose_name_plural
class ProxyGroup(Group):
class Meta:
proxy = True
verbose_name = Group._meta.verbose_name
verbose_name_plural = Group._meta.verbose_name_plural
admin.site.unregister(Group)
admin.site.unregister(User)
admin.site.register(ProxyGroup)
admin.site.register(ProxyUser, UserAdmin)
Я думаю, что unregister(...)
повлияет на другого администратора приложения в глобальном масштабе!
Это еще одна причина отсутствия значка поиска.