我有两个模型,Design
和Profile
。配置文件在settings.py中作为要与User模型一起使用的配置文件连接。所以我可以通过user.get_profile()
访问它。
每个Design
实例都有一个author
属性,它是对用户的ForeignKey。
所以,当我查看任何视图时,我可以通过以下方式获取屏幕名称(Profile的属性):
user.get_profile().screenname
但是对于此属性,SEARCH BY FILTER的语法是什么?我目前有什么:
designs = Design.objects.filter(author__userprofile__screenname__icontains=w)
这不起作用。想法?
答案 0 :(得分:8)
如果您的个人资料类名为个人资料,并且您尚未自定义用户< - >使用ForeignKey的related_name属性进行配置文件关系,然后您不应该通过以下方式访问:
designs = Design.objects.filter(author__user__profile__screenname__icontains=w)
用户 - >配置文件跨越一个关系,因此您需要额外的双下划线。