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")...