首页 > 解决方案 > Distinct() 不适用于由 union() 产生的查询集

问题描述

我有一个模型:

class Person(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=50) 

如果我做:

all_queryset = Person.objects.all()
all_queryset.count() # --> 8
all_queryset.order_by('name').distinct().count() # --> 3

让我们将它与另一个空查询集联合:

empty_queryset = Person.object.none()
all_queryset = all_queryset.union(empty_queryset)
all_queryset.count() # --> 8

现在,distinct()不再起作用了:

all_queryset.order_by('name').distinct().count() # --> 8 !

它与这个4 岁的错误有关吗?

标签: djangodjango-queryset

解决方案


推荐阅读