所以这个超长查询几乎可以根据需要运行:
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的下一个版本。
我需要的是这个订单:
我得到的是: