Let me provide the patch based on my knowledge of Django's codebase structure. The issue is that `distinct()` on union querysets should raise an error like other unsupported operations. --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -1000,6 +1000,10 @@ class QuerySet: def distinct(self, *field_names): """Return a new QuerySet instance that will select only distinct results.""" + if self.query.combinator: + raise NotSupportedError( + 'Calling distinct() after %s() is not supported.' % self.query.combinator + ) assert self.query.can_filter(), \ "Cannot create distinct fields once a slice has been taken." obj = self._chain()