Django distinct不能按预期运行

时间:2014-07-04 10:48:38

标签: django

我有一个分类表,我从中检索数据ct。 每个ct都有一个名为Subcategory的字段,它是具有Subcategory字段的name表的外键。

ct = Classified.objects.filter(Q(name__icontains=q) | Q(subcategory__parent__type__icontains=q) | Q(address__area__icontains=q) | Q(subcategory__name__icontains=q)).filter(active__icontains='yes').filter(address__city__name__exact=cit).order_by('name')

我设计了一种从ct检索所有唯一子类别的方法,如下所示:

cat1 = ct.values_list('subcategory__name', flat=True).distinct()

现在这没有按照我的意图工作,并在数据库中返回了相同值的多个副本。例如,如果有3 ct个子类别为Italian Restaurant,那么cat1会返回一个列表,其中有3个Italian Restaurant出现。

我使用了来自Django distinct is not working的解决方案并使用了以下内容:

cat1 = ct.values_list('subcategory__name', flat=True).distinct('name')

但这不起作用。解决这个问题的方法有哪些

编辑:已添加ct

1 个答案:

答案 0 :(得分:0)

解决方法是:

cat1 = ct.order_by('subcategory__name').values_list('subcategory__name', flat=True).distinct()