我想知道如何在不直接知道用户名的情况下使用我的Django管理员的用户名栏中的详细信息进行搜索。
我的管理员中有对象,我希望能够通过USERNAME_FIELD进行搜索,以访问有关给定用户的这些对象。
起初我试过了:
search_fields = ('user__username', 'user__email',)
但是这产生了一个FieldError:无法解析关键字' username'进入田野。
我现在正在尝试在Django文档中找到的内容,但是它给了我一个错误,该错误表示“解压缩的价值太多”。
def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super(MyAdmin, self).get_search_results(request, queryset, search_term)
queryset = self.model.objects.filter(get_user_model().USERNAME_FIELD)
return queryset, use_distinct
我能想到的唯一解决方案是格式化一个我不愿意做的字符串,因为它不是很好的代码。
答案 0 :(得分:0)
您可以通过在admin.py文件中添加以下内容来完成此操作。
class WebUser(User):
class Meta:
proxy = True
verbose_name = "User"
verbose_name_plural = "Users"
class UserAdmin(admin.ModelAdmin):
search_fields = ('user__username', 'user__email')
admin.site.register(WebUser, UserAdmin)
希望这会有所帮助。