【发布时间】:2017-01-02 14:43:59
【问题描述】:
我在这里迷路了。我需要生成一个由另一个 qs 的外键指向的值组成的查询集(qs)(在这里寻找它,在这个过程中变得秃顶......)。
现在,假设我有简单的模型:
class User(models.Model):
name = models.CharField()
class Comment(models.Model):
user = models.ForeignKey(User, related_field="comments")
def __str__(self):
return "%s's comment"%self.user.name
我有一个qs,由(很多)特别选择的评论组成。说:
[<Comment: "user_A's comment">,<Comment: "user_B's comment">,...]
我需要从我之前的 qs 的外键指向的值生成一个由 Users 组成的 qs。现在,我不能只使用values('user') 来获取列表,因为生成的 qs 必须在 db 中执行进一步的操作,例如加入其他用户 qs、过滤等
我还尝试通过使用 .raw() 来暴力破解该过程并取得了一些成功,但随后我得到了一个 rawQuerySet 对象,我也无法使用它。
查看有关extra() 和select_related() 的文档,我认为可能有某种方法,但我想不通。
【问题讨论】:
标签: django-queryset python-3.4 django-1.9