Django:按照多个标准的相关模型排序,最后将空值排序

时间:2018-06-13 11:24:58

标签: django django-orm

所以这个超长查询几乎可以根据需要运行

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

基本上,这会将所有空值放在最后,但是 - 因为我想要SOONEST下一个版本,所以这不起作用。它首先放置了FARTHEST的下一个版本。

我需要的是这个订单:

  1. 艺术家X - 下一个发布日期:6.12.18
  2. 艺术家Y - 下一个发布日期:6.31.18
  3. 艺术家Z - 下一个发布日期:Null
  4. 我得到的是:

    1. 艺术家Y - 下一个发布日期:6.31.18
    2. 艺术家X - 下一个发布日期:6.12.18
    3. 艺术家Z - 下一个发布日期:Null

0 个答案:

没有答案