我有一个Django项目,我希望Model包含另一个Model的对象的有序列表。如果我理解正确,列表通常使用从包含的对象指向包含对象的外键来完成。但如果我这样做,我会确保维护对象的顺序(我在管理面板中添加它们的顺序)吗?是什么决定了他们内部的秩序?
另外,如果带有外键的元素是无序的,我将如何在Django模型中创建有序列表?
答案 0 :(得分:0)
您可以在模型的Meta选项中指定要订购的字段。
请参阅https://docs.djangoproject.com/en/dev/ref/models/options/#django.db.models.Options.ordering
如果您需要在不同查询中按不同字段排序,则可以覆盖各个查询集上的order_by。
请参阅https://docs.djangoproject.com/en/dev/ref/models/querysets/#order-by
如果您想根据时间戳(例如将它们添加到数据库中)对它们进行排序,那么您可以在Meta选项中指定它。
答案 1 :(得分:0)
如果需要,您可以添加一个字段,该字段使用auto_now_add属性自动存储创建对象时的日期时间,例如以下示例:
creation_date = models.DateTimeField('Date', auto_now_add=True)
然后,您可以通过此字段的Meta属性在数据库中订购:
class Meta:
ordering = ('creation_date',)