如何设置适用于相关管理器的Django查询的默认顺序?
您可以使用Meta.ordering设置默认订单:
class Subject(Model):
title = TextField()
class Course(Model):
subject = ForeignKey(Subject)
class Meta:
ordering = ['id']
这将在您运行Course.objects.all()
时设置顺序。但是当你运行subject.course_set.all()
时,课程可能会出现故障。
理想情况下,解决方案不会对查询数据库的庞大现有代码库进行任何更改。
注意:数据库是Postgresql
答案 0 :(得分:0)
据我所知,有一个黑客 您可以制作像
这样的经理方法class SomeManagerSet(models.QuerySet):
def ordered(self):
return self.order_by("id")
通过
在模型中激活它objects = SomeManagerSet.as_manager()
然后在subject.course_set.ordered()