如何从Django中的一个到一个字段表中检索值?

时间:2017-12-19 18:34:00

标签: python django

我使用了两个模型和一个内置于User模型的django。

class UserInfo(models.Model):
    user = models.OneToOneField(User)
    user_contact = models.CharField()
    age = models.IntegerField()

class Review(models.Model):
    user = models.ForeignKey('exam.UserInfo')
    is_reviewed= models.BooleanField()

UserInfo字段与User模型一对一。用户模型具有我想要检索的'username'字段。但我无法了解如何获得username字段为is_reviewed的用户0。到目前为止我正在尝试但未能检索到:

result=Review.objects.select_related('user_id__id').filter(is_reviewed=0)

1 个答案:

答案 0 :(得分:2)

您不一定需要select_related,这是一个性能调整工具。如果您需要Review模型实例,只需进行查询并正常检索相关值:

result = Review.objects.filter(is_reviewed=False)

然后该名称可用虚线查找,例如:

result[0].user.user.username

这些将进一步查询 - select_related可帮助您调整是否预取这些查询。

如果您只想要用户名,可以使用valuesvalues_list查询,例如:

usernames = Review.objects.filter(is_reviewed=False).values_list('user__user__username', flat=True)