我需要使用Django模型的Meta类对查询集进行排序。我是这样定义的:
class MyModel(models.Model):
order = models.IntegerField(blank=True, null=True)
class Meta:
ordering = ['order']
字符串
某些记录的“订单”值为null。如果我得到queryset,那么订单值为null的记录将被放置在结果的开头。我只是想把这样的记录放在queryset的末尾。
我为此查阅了一些文章。django order by isnull value?Django : Order by position ignoring NULL的数据库
但是我需要使用Django模型的Meta类来完成。有没有什么方法可以通过Meta class来实现?
关于Philip
1条答案
按热度按时间gojuced71#
我知道这个问题太老了,但根据django的文档(https://docs.djangoproject.com/en/4.2/ref/models/options/),可以使用查询表达式来处理排序,将空值保留在queryset的末尾。
我已经成功地完成了这些排序设置:
class MyModel(models.Model):
字符串
class Meta:
ordering = [F("fieldA").asc(nulls_last=True), F("fieldB").asc(nulls_last=True)
]希望能帮上忙!