Django模型中的有序列表

时间:2014-12-27 15:39:03

标签: django models

我有一个Django项目,我希望Model包含另一个Model的对象的有序列表。如果我理解正确,列表通常使用从包含的对象指向包含对象的外键来完成。但如果我这样做,我会确保维护对象的顺序(我在管理面板中添加它们的顺序)吗?是什么决定了他们内部的秩序?

另外,如果带有外键的元素是无序的,我将如何在Django模型中创建有序列表?

2 个答案:

答案 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',)