订购Django模型

时间:2010-02-26 16:05:04

标签: python django

我为我的Django模型设置了一个ordering='ordering_number' Meta属性,认为Django会在比较实例时使用它。 (ordering_number是我模型中的IntegerField。)

例如,如果我的实例a包含ordering_number = 4,实例b包含ordering_number = 7,我希望a < b为{ {1}}。但是,我测试了它,它似乎没有用。根据哪个逻辑True出现为a < b,我不明白。

有谁知道吗?为什么Django不使用True进行元素比较?

1 个答案:

答案 0 :(得分:2)

来自the documentation

  

对象的默认排序,用于获取对象列表

所以你的比较不起作用的原因是因为它们不是那样设计的。定义__lt__()等等以定义实例的排序。