Django:将反向OneToOne关系对象附加到查询集?

时间:2015-09-03 23:04:15

标签: python django

我的应用程序已对附加到django Comment模型的每个User对象进行评论。但是,我在UserProfile模型(附加到每个User的额外OneToOne模型)中有重要信息,例如我希望可以从查询集轻松访问的用户职业/标题评论对象。在django中我能做到这一点的最佳方式是什么?

我想在特定页面上获得所有评论:

commentset = Comment.objects.filter(pagetag=page_instance)

我需要在上面的查询集中使用与django的注释函数类似的东西,为查询集中的每个注释对象追加一个额外的属性,这是对UserProfile模型的User模型的反向OneToOne查找。

我的评论对象有django用户模型的标记:

class Comment(models.Model):
    content = models.CharField(max_length=1024)
    usertag = models.ForeignKey(User)
    ...

附加到每个用户的个人资料模型:

class UserProfile(models.Model):
    gender = models.CharField(max_length=7, choices=(('male', 'male'), ('female', 'female'), ('other', 'other')), blank=True, null=True)
    editnumber = models.IntegerField(default=0)
    usertag = models.OneToOneField(User)
    profileisverified = models.BooleanField(default=False)
    usertitle = models.CharField(max_length=128, blank=True, null=True)
    activation_key = models.CharField(max_length= 40, blank=True)

    def __unicode__(self):
        return self.usertag.first_name

1 个答案:

答案 0 :(得分:1)

使用comment.usertag.userprofile访问配置文件而不是存储它可能更简单。