UserProfile
与'用户'一对一,与Place
多对一
class UserProfile( models.Model ) :
user = models.OneToOneField( User )
place = models.ForeignKey( Place, null = True, blank = True )
在Place
的详细视图中,我想列出Place
的所有居民。换句话说,我想列出User
具有指定UserProfile
的所有Place
个。
在我的模板中,我尝试了
{% for resident in place.user_profile_set.user_set.all %}
但那没用。我想我在Django的"following a relationship backwards"概念中基本上缺少一些东西?
答案 0 :(得分:3)
如下所示:
{% for resident in place.userprofile_set.all %}
{{ resident.user }}
{% endfor %}
答案 1 :(得分:3)
你错过了两件事,是的。
首先,从Place
到UserProfile
的向后关系是userprofile_set
,而不是user_profile_set
。
第二个是从那里到User
根本不是向后关系:它是向前的,因为FK是在UserProfile
模型上定义的。因此,从UserProfile
到User
,您只需执行.user
- 它是单个元素,而不是查询集。
所以,正如pastylegs所说,你遍历place.userprofile_set.all
中的个人资料并执行profile.user
。