Python ORM订购与型号对比”;Meta";订购-Django 1.11

Python ORM订购与型号对比”;Meta";订购-Django 1.11,python,django,Python,Django,小问题-订购物品的更好方式是什么: (一) 2) Table.objects.all().order\u by(“用户”) 我认为第二个更好,因为第一个总是会返回已订购的查询集,如果有时我们不需要订购-这将需要额外的时间?除了方便“不写”。每次按(“用户”)下单是否还有其他原因使用1方法?你是对的,如果不需要,元排序确实会导致额外的时间。额外开销的数量可能因指定的顺序而异 以下文档对此进行了描述: 有鉴于此,它成为一种设计选择。如果您总是需要模型实例处于相同的顺序,例如按字母顺序排列的待售产品

小问题-订购物品的更好方式是什么:
(一)

2)
Table.objects.all().order\u by(“用户”)



我认为第二个更好,因为第一个总是会返回已订购的查询集,如果有时我们不需要订购-这将需要额外的时间?除了方便“不写”
。每次按(“用户”)下单是否还有其他原因使用1方法?

你是对的,如果不需要,元排序确实会导致额外的时间。额外开销的数量可能因指定的顺序而异

以下文档对此进行了描述:


有鉴于此,它成为一种设计选择。如果您总是需要模型实例处于相同的顺序,例如按字母顺序排列的待售产品名称列表,那么您可能需要元排序。如果您以各种不同的方式处理模型实例,需要不同的排序/筛选,然后,您可能不希望产生元排序的开销。

在基于类的视图中使用模型时,有时使用第一个选项很重要,因为它可能是作为
外键传递的模型。在这种情况下,如果未在
Meta
中添加
ordering
,则在模板中引用时无法设置顺序

class Table(models.Model):
    ...
    class Meta:
        ordering = ['user']