Django原始id字段小部件未显示搜索图标
我的admin.py中有以下代码:Django原始id字段小部件未显示搜索图标,django,django-admin,Django,Django Admin,我的admin.py中有以下代码: class UserManagedGroupAdmin(admin.ModelAdmin): inlines = [MembershipInline] search_fields = ('name', 'leader__username', ) list_display = ('__unicode__', 'leader', ) filter_horizontal = ('permissions', ) raw_id_f
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'
是指向用户的外键
是django出于安全原因禁用了对ForeignKeys
到User
的搜索,还是我做错了什么
这个小部件非常适合选择用户。。。我的意思是,我不能给我网站的每个用户留下一个巨大的选择
谢谢。多亏了django用户,我发现了这个问题
我必须在管理员中注册ForeignKey
指向的模型
如果没有它,搜索将无法工作。在admin.py
文件中添加:
admin.site.register(YourModel)
这就成功了,你的模型就是要用放大镜显示的模型。你遇到了同样的问题,但原因有点不同
将用户和用户组与其他应用程序的管理员集成(例如,某些应用程序
)
我将下面的代码添加到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)
我认为注销(…)
将影响其他应用程序的全局管理
这是搜索图标丢失的另一个原因。谢谢,这对我很有用。只是为了澄清问题中给出的示例。询问者没有在管理员中注册用户
,因此管理员无法识别它。这种情况的表现是望远镜图标不显示。如果我处于这种情况,但我仍然希望选择器为我显示?因为我确实注册了一个管理员,它是DjangoUser
类和我定制的UserProfile
类的组合管理员。我将为UserProfile
注册一个单独的管理员,并尝试隐藏它。