优化auth用户配置文件的select_related字段

时间:2014-10-14 09:43:36

标签: django

class UserProfile(models.Model):
      user = models.OneToOneField(User, related_name='profile')
      dob = models.DateField(blank=True, null=True)
      otherfields = ......

class Comment(models.Model):
      author = models.ForeignKey(User)

我想只在select中包含DOB。

q = Comment.objects.all().select_related('author__profile__dob')

但是如果我做q.query它在select语句中也显示otherfields如何摆脱它?我也使用了.only('author__profile__dob'),但这并没有解决问题

1 个答案:

答案 0 :(得分:1)

您尝试加入的是列而不是表格

# Joins author and pofile
q = Comment.objects.all().select_related('author__profile')

# Selects only dob field
q = q.only('author__profile__dob')

但请注意:如果您使用only,则必须在查询中列出所有必填字段。可能你想要defer