Django: сортировка по родственной модели с несколькими критериями, последнее значение - нули - PullRequest
0 голосов
/ 13 июня 2018

Так что этот сверхдлинный запрос почти работает по мере необходимости:

context['user_artists'] = Artist.objects.filter(users=current_profile) \
            .prefetch_related(Prefetch('release_groups',
                                       queryset=ReleaseGroup.objects.filter(release_date__isnull=False,
                                                                            release_date__gte=startdate)
                                       .order_by('release_date'), to_attr='rgs')) \
            .annotate(next_release=Max('release_groups__release_date')).order_by(F('next_release').desc(nulls_last=True))

По сути, это ставит все нулевые значения в последнюю очередь, НО - поскольку я хочу СРОЧНЫЙ следующий выпуск, это не 'т работа.Это ставит на первое место ДАЛЬШЕ следующего выпуска.

Мне нужен следующий порядок:

  1. Исполнитель X - дата следующего выпуска: 6.12.18
  2. Исполнитель Y - следующийдата выпуска: 6.31.18
  3. Artist Z - следующая дата выпуска: Null

Что я получаю:

  1. Artist Y - следующий выпускдата: 6.31.18
  2. Artist X - дата следующего выпуска: 6.12.18
  3. Artist Z - дата следующего выпуска: Null
...