【发布时间】:2016-01-10 08:35:27
【问题描述】:
我有一个有 2 个字段的模型。
class MyModel:
tcode = Charfield
created_on = Date field
#some more fields
现在这个模型可以有多个具有相同 tcode 的行,并且每行可以有不同的日期或相同的日期。
例如
tcode1, 1/2/2001
tcode2, 1/2/2001
tcode2, 2/2/2001
....etc.
我想过滤此模型上的查询,以便 tcode 和日期字段组合应该是唯一的。我怎样才能得到所有这些对象。
我正在尝试这样做
MyModel.objects.all().order_by('tcode').distinct('tcode', 'created_on')
现在您可能会问,如果两个字段中有两行具有相同的数据,我想要哪一行!对我来说没关系,任何行都可以正常工作。
【问题讨论】:
-
你用的是什么sql?
distinct()带有位置参数(*fields)仅适用于 PostgreSQL。试试MyModel.objects.all().order_by('tcode').distinct() -
那么
MyModel.objects.all().order_by('tcode').distinct('tcode', 'created_on')肯定不行。您是否尝试过在没有位置参数的情况下使用distinct()?
标签: mysql django django-models