Django - упорядочивание после distinct вызывает ошибку - как заставить его работать?

У меня есть пользовательский метод QuerySet, который фильтрует пользователей, имеющих хотя бы одну ипотеку. Чтобы не получить дубликаты, я должен добавить .distinct('pk').

Проблема в том, что API позволяет заказывать по требованию. Это означает, что я не могу просто упорядочить набор запросов перед вызовом distinct.

Как я могу заставить его работать?

Пользовательский набор запросов:

class UserQuerySet(models.QuerySet):
    def is_applicant(self):
        return self.filter(mortgages__isnull=False).distinct('pk')

Это отношение:

applicant = models.ForeignKey('User', verbose_name='Žiadateľ', on_delete=models.PROTECT,
                              related_name='mortgages')

Могу ли я заставить метод is_applicant работать без использования distinct?

Прямо сейчас, если я пытаюсь заказать его, он поднимает:

ProgrammingError
SELECT DISTINCT ON expressions must match initial ORDER BY expressions
LINE 1: SELECT COUNT(*) FROM (SELECT DISTINCT ON ("users_user"."id")...
Вернуться на верх