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的任何模型