我有一个字段hotrank
,它保存了热门音乐(1,2,3,4...10)
但如果音乐没有进入前 10 名,我将节省 0。
我还有另一个名为 releaseday
的字段,它保存了音乐的发布日期
现在我想查询:
Music.objects.filter(releaseday__lte=today).order_by('hotrank','-releaseday')
但是这里有一个问题,hotrank的order_by是从0开始的,但是0不是top music
如何让order_by从hotrank=1
开始?有什么方法吗?
最佳答案
我认为您可以从查询结果中得到 hotrank=0 的结果,如下所示:
Music.objects.filter(releaseday__lte=today).exclude(hotrank=0).order_by(
'-hotrank','-releaseday')
如果你想在有序结果之后添加 hotrank=0 的结果,你可以这样做:
released_music = Music.objects.filter(releaseday__lte=today).order_by('-hotrank',
'-releaseday')
result = released_music.exclude(hotrank=0) | released_music.filter(hotrank=0)
关于python - 在忽略值的同时排序查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27941954/