Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将UserProfile中的搜索功能添加到Django | search_字段中的UserAdmin,并使用ForeignKey_Django_Django Admin - Fatal编程技术网

将UserProfile中的搜索功能添加到Django | search_字段中的UserAdmin,并使用ForeignKey

将UserProfile中的搜索功能添加到Django | search_字段中的UserAdmin,并使用ForeignKey,django,django-admin,Django,Django Admin,我将Django的用户管理与使用foreignkey链接到用户模型的用户配置文件结合使用。现在,我想让用户配置文件中的字段可以从UserAdmin进行搜索 我最好的猜测是使用这样的东西: class UserAdmin(auth.admin.UserAdmin): def field_name(self, obj): return obj.get_profile().name list_display = ('field_name',) search

我将Django的用户管理与使用foreignkey链接到用户模型的用户配置文件结合使用。现在,我想让用户配置文件中的字段可以从UserAdmin进行搜索

我最好的猜测是使用这样的东西:

class UserAdmin(auth.admin.UserAdmin):

    def field_name(self, obj):
        return obj.get_profile().name

    list_display = ('field_name',)

    search_fields = ('field_name',)
虽然列表显示工作正常,但在提交查询时搜索字段会给我一条错误消息:无法将关键字“字段名称”解析为字段。选择是:[……]


你知道怎么做吗?提前谢谢。

您可以使用带有双下划线的queryset表示法来表示连接,例如

 search_fields = ('company_name','user__username')


更多信息

真正的问题是
auth_user
表没有配置文件模型的外键,而是相反。用户模型中唯一的连接是
.get\u profile()
方法,无法使用双下划线访问该方法,因为它是一个方法而不是字段。抱歉,反向关系可以工作。profile\uuuu name或profile\uuuu name\uuuu包含的内容取决于您的模式。在ipython把这些事情梳理出来是件好事。它将是User.objects.filter(what\uu you\uu want='foo')。如果你还有问题,你可能想发布你的个人资料模型谢谢,迈克尔。相反的关系起了作用。我不知道为什么我没有从你到django文档的链接中得到这些信息。也许我太累了,想不清楚。