我的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
,或者我做错了什么?
小部件非常适合选择用户......我的意思是,我不能在我的网站的每个用户那里留下一个巨大的选择。
感谢。
答案 0 :(得分:23)
答案 1 :(得分:0)
在admin.py
文件中添加:
admin.site.register(YourModel)
这就是诀窍,其中YourModel是用放大镜显示的模型
答案 2 :(得分:0)
您遇到相同的问题,但原因有所不同。
要将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(...)
将在全球范围内影响另一个应用程序的管理员!
这是缺少搜索图标的另一个原因。