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

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

vs

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

我的目标是获得每个Article下的唯一 comments ID列表.我已经阅读了文档(实际上使用了两种方法).结果显然是相似的.

推荐答案

values()方法返回一个包含字典的查询集:

<QuerySet [{'comment_id': 1}, {'comment_id': 2}]>

values_list()方法返回包含元组的QuerySet:

<QuerySet [(1,), (2,)]>

如果将values_list()与单个字段一起使用,则可以使用flat=True返回单值的QuerySet,而不是1元组:

<QuerySet [1, 2]>

Django相关问答推荐

对象Django API中的对象

Djnago admin中 Select 字段的自定义查询

Django中的判断约束

Django没有';t显示黄页

如何在Django REST框架中实现ForeignKey搜索

有什么方法可以自动设置 Debug True Django application

如何重命名标准 django-registration 模板的名称

Django:使用相同的外键在不同的应用程序中 Select 多个列

- 不支持的操作数类型:DateField和DateField

django 管理员登录突然要求 csrf 令牌

如何在 forms.Form 子类上动态设置 models.ModelChoiceField 的查询集

ManyRelatedManager 不可迭代

Django 从字段开始

Django删除查询集的最后五个以外的所有内容

Django REST 异常

在 django 模板中遇到 user.is_authenticated 问题

重命名 django 元素的简单方法

使用 Django 1.5 实现多种用户类型

django-object-permissions Vs django-guardian Vs django-authority

XlsxWriter 对象另存为 http 响应以在 Django 中创建下载