14

我的 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'是一个ForeignKeyto User

可能是 django 出于安全原因禁用了对ForeignKeysto的搜索User,还是我做错了什么?

该小部件非常适合选择用户...我的意思是,我不能为我网站的每个用户留下大量选择。

谢谢。

4

3 回答 3

31

由于django-users 中的这条消息,我发现了问题。

我必须在管理员中注册ForeignKey指向的模型。

没有它,搜索就无法工作。

于 2013-05-16T14:25:54.410 回答
2

嗨遇到同样的问题,但原因有点不同。

将用户和用户组与另一个应用程序的管理员集成(例如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(...)将在全球范围内影响其他应用程序的管理员!

这是缺少搜索图标的另一个原因。

于 2018-12-19T08:12:44.723 回答
1

admin.py文件中添加:

admin.site.register(YourModel)

这成功了,YourModel 是用放大镜显示的模型

于 2016-05-23T08:49:52.163 回答