Django QuerySet:distinct()适用于一个领域,但不适用于另一个领域

Djnago QuerySet: distinct() work for one field, but don't work for enother

我有两个字段的查询集:

```Python
print(products_mtm)

<QuerySet 
[
{'fk_products': 2653, 'fk_classes': 20}, 
{'fk_products': 2653, 'fk_classes': 23}, 
{'fk_products': 2653, 'fk_classes': 29}, 
{'fk_products': 2654, 'fk_classes': 20}, 
{'fk_products': 2654, 'fk_classes': 21}, 
{'fk_products': 2654, 'fk_classes': 24}, 
{'fk_products': 2655, 'fk_classes': 20},
{'fk_products': 2655, 'fk_classes': 25},
....]

print(products_mtm.values_list('fk_products').distinct())

print(products_mtm.values_list('fk_classes').distinct())
<QuerySet [(20,), (23,), (29,), (20,), (21,), (24,), (20,) (25,)...] #It does't DISTINCT it is  full values_list of the 'fk_classes'

``` 

是排序的问题。 products_mtm 上面有 order_by('fk_products')docs.djangoproject.com/en/3.2/ref/models/querysets/#distinct – alv2017

我可以自由拒绝这个 order_by,其中 - 所有 distinct() 都可以正常工作。但是,如果订购是必要的,对我来说很简单 - 只需使用 set(products_mtm.values_list('fk_classes')) 而不是 distinct()(可能不是 Django QuerySets 的本机,但它工作正常。)