Python 如何在Django中按用户配置文件的属性筛选查询?

Python 如何在Django中按用户配置文件的属性筛选查询?,python,django,Python,Django,我有两种型号,Design和Profile。配置文件连接在settings.py中,作为要与用户模型一起使用的配置文件。所以我可以通过user.get\u profile()访问它 每个Design实例都有一个author属性,它是用户的外键 因此,当我查看任何视图时,我可以通过以下方式获取屏幕名(配置文件的属性): user.get_profile().screenname 但按筛选器搜索此属性的语法是什么?我目前拥有的: designs=Design.objects.filter(autho

我有两种型号,
Design
Profile
。配置文件连接在settings.py中,作为要与用户模型一起使用的配置文件。所以我可以通过
user.get\u profile()
访问它

每个
Design
实例都有一个
author
属性,它是用户的外键

因此,当我查看任何视图时,我可以通过以下方式获取屏幕名(配置文件的属性):

user.get_profile().screenname

但按筛选器搜索此属性的语法是什么?我目前拥有的:

designs=Design.objects.filter(author\uuuu userprofile\uuuu screenname\uuuu icontains=w)


这不管用。想法?

如果您的配置文件类名为profile,并且您没有使用ForeignKey的related_name属性自定义用户配置文件关系,那么您不应该通过以下方式访问:

designs = Design.objects.filter(author__user__profile__screenname__icontains=w)

用户->配置文件跨越一个关系,因此您需要额外的双下划线。

Close。我需要做的是:作者简介屏幕名。谢谢你的帮助!不确定这是否已经改变,但对我来说(使用Django 1.3),我必须使用uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。这将适用于具有指向用户模型的OneToOneField的任何模型