我使用了两个模型和一个内置于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)
答案 0 :(得分:2)
您不一定需要select_related
,这是一个性能调整工具。如果您需要Review
模型实例,只需进行查询并正常检索相关值:
result = Review.objects.filter(is_reviewed=False)
然后该名称可用虚线查找,例如:
result[0].user.user.username
这些将进一步查询 - select_related
可帮助您调整是否预取这些查询。
如果您只想要用户名,可以使用values
或values_list
查询,例如:
usernames = Review.objects.filter(is_reviewed=False).values_list('user__user__username', flat=True)