我有一个分类表,我从中检索数据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
答案 0 :(得分:0)
解决方法是:
cat1 = ct.order_by('subcategory__name').values_list('subcategory__name', flat=True).distinct()