小问题 - 什么是订购商品的更好方式:
1)
export PATH="$PATH:$HOME/.cabal/bin/"
2)class Table(models.Model):
...
class Meta:
ordering = ['user']
我认为第二个更好,因为首先总会返回有序的查询集,如果有时我们不需要订单 - 它需要额外的时间吗?有没有其他理由使用1种方法,每次都有“不写”Table.objects.all().order_by("user")
的便利?
答案 0 :(得分:2)
你是对的,如果不需要,Meta Ordering会产生额外的时间。额外开销的数量可能因指定的顺序而异。
这在以下文档中有描述:
https://docs.djangoproject.com/en/1.11/ref/models/options/#ordering
鉴于此,它成为一种设计选择。如果您始终需要Model实例具有相同的顺序,例如按字母顺序排列的待售产品名称列表,那么您可能需要Meta Ordering。如果您正在以各种不同的方式处理Model实例,这些方法需要不同的排序/过滤,那么您可能不希望产生Meta Ordering的开销。
答案 1 :(得分:2)
在基于类的视图中使用模型时,使用第一个选项有时很重要,因为它可能是作为ForeignKey
传递的模型。在这种情况下,如果您没有在ordering
中添加Meta
,则无法在模板中引用它。