Django选择distinct不能正确返回

时间:2013-01-15 00:29:55

标签: django django-models model

你好我正在一个网站上工作并且有一个问题,为什么它会以这种方式返回?

我希望从{table}

中选择不同的“类别”

我尝试使用和不使用Flat = True

In [27]: q = EyeMakeUpWaxing.objects.values_list('category', flat=True).distinct()

In [28]: print q.query
SELECT DISTINCT `eye_make_up_waxing`.`category`, `eye_make_up_waxing`.`created_at` FROM `eye_make_up_waxing` ORDER BY `eye_make_up_waxing`.`created_at` ASC

In [29]: print q
[u'EYE_BEAUTIFICATION', u'EYE_BEAUTIFICATION', u'EYE_BEAUTIFICATION', u'MAKE_UP', u'MAKE_UP', u'MAKE_UP', u'MAKE_UP', u'ENHANCER_ADD_ON', u'ENHANCER_ADD_ON', u'ENHANCER_ADD_ON', u'ENHANCER_ADD_ON', u'ENHANCER_ADD_ON', u'ENHANCER_ADD_ON', u'ENHANCER_ADD_ON']

如果这不是这个plz的django语法帮助获得正确的

1 个答案:

答案 0 :(得分:1)

在那里有一个排序声明导致问题(从您的模型/其他地方定义的默认排序)。

通过order_by()

清除排序
EyeMakeUpWaxing.objects.order_by().values_list('category', flat=True).distinct()

排序强制使用SELECT created_at,使每个条目都不同。

https://docs.djangoproject.com/en/dev/ref/models/querysets/#distinct