我试图按照创建日期/时间对此模型中的“记录”进行排序,但遇到了问题。
class MyModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
order_with_respect_to = 'created_at'
当我尝试运行syncdb
时,我收到以下错误AttributeError: 'NoneType' object has no attribute 'to'
任何帮助表示赞赏
答案 0 :(得分:2)
这不是order_with_respect_to
的用途 - 它是用于将模型标记为关于相关模型的有序模型。就我个人而言,我从来没有机会使用它,所以我无法真实地谈论它的经验 - 除了说你不是如何进行简单的约会。
要按创建时间排序,请改为使用ordering
meta
属性:
class MyModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ['created_at']
严格来说,你并不一定要声明这一点。如果您未在模型或查询中声明任何其他排序,则结果将按其PK排序。默认情况下,PK将是一个自动递增系列,因此对象将按其创建顺序隐式排序。但是如果你真的关心排序顺序,那么最好是明确而不是依赖于提升PK的副作用。