I understand this is a Django issue that needs to be fixed. Since I don't have direct access to the Django repository, let me provide the patch based on my knowledge of Django's codebase structure and the issue description. The issue is that `distinct()` is called on a union queryset but silently does nothing instead of raising an error. According to Django documentation and the related issue #27995, only LIMIT, OFFSET, COUNT(*), ORDER BY, and specifying columns are allowed on combined querysets. The fix needs to be in `django/db/models/query.py` in the `distinct()` method to check if the queryset has a combinator (union, intersection, difference) and raise a `NotSupportedError`. --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -1188,6 +1188,10 @@ class QuerySet: Return a new QuerySet instance that will select only distinct results. """ assert not self.query.is_sliced, "Cannot call distinct() after .values() or .values_list()" + if self.query.combinator: + raise NotSupportedError( + 'Calling distinct() after %s() is not supported.' % self.query.combinator + ) obj = self._chain() obj.query.add_distinct_fields(*field_names) return obj