在Django中,以下两者有什么区别:

Article.objects.values_list('comment_id', flat=True).distinct()

对比
Article.objects.values('comment_id').distinct()

我的目标是在每个 Article 下获取唯一评论 ID 的列表。我已经阅读了文档(实际上已经使用了这两种方法)。结果明显相似。

最佳答案

values() 方法返回一个包含字典的 QuerySet:

<QuerySet [{'comment_id': 1}, {'comment_id': 2}]>
values_list() 方法返回一个包含元组的 QuerySet:
<QuerySet [(1,), (2,)]>
如果您将 values_list() 与单个字段一起使用,则可以使用 flat=True 返回单个值的 QuerySet 而不是 1 元组:
<QuerySet [1, 2]>

关于Django values_list 与值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37205793/

10-15 18:42