【问题标题】:How to list distinct sqlite queryset in django [duplicate]如何在 django 中列出不同的 sqlite 查询集 [重复]
【发布时间】:2020-11-09 21:20:50
【问题描述】:

我正在尝试获取 Django 模型的某个字段的所有唯一值。 不幸的是 sqlite 不支持字段上的 DISTINCT 所以以下不起作用

dates = Invoices.objects.distinct('invoice_date')

所以我试过了

dates = Invoices.objects.values_list('invoice_date').distinct()

第一眼看起来不错,因为 dates.count() 返回唯一值的数量。 但是len(dates) 仍然返回日期总数,当我通过list(dates) 将其转换为列表(以便能够构建 JSON 响应)时,我最终得到所有日期:/

如何获得唯一值列表? 还是用sqlite不可能?

【问题讨论】:

  • 谢谢,这表明我错过了导致所需结果的 order_by('invoice_date') (尽管我不知道为什么 order_by 在这里是必要的)

标签: python django sqlite


【解决方案1】:

您可以使用 set 来获取唯一(不同的)值。

dates = set(Invoices.objects.values_list('invoice_date'))

【讨论】:

  • 非常感谢 - 设置会导致所需的结果!另外我用 list() 包装了 set() 但由于 set 只剩下唯一值:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-08
  • 2021-08-05
  • 2020-03-06
  • 2016-12-28
  • 2022-01-23
  • 1970-01-01
相关资源
最近更新 更多