我用 django 写了一个网站。我注意到它User.objects.all()
让我的用户乱序。
也就是说,例如,我有一个用户使用id=1
Sasha,使用id=2
Pasha,使用id=3
Masha,使用id=4
Dasha。它以 3、2、1、4而User.objects.all()
不是 1、2、3、4 的顺序给我它们。问题是,为什么?django 开箱即用的标准是什么?
PS:我知道order_by
并且我可以覆盖Meta
类中的默认排序字段。我只是想知道它是如何直接做到的User.objects.all()
不是 Django 根据某些标准对它们进行排序,而是它们如何从 DBMS 中获取它们。根据 SQL 标准,如果查询中没有明确定义排序,则结果的顺序可以是任意的。
如果要定义默认排序,则可以在模型元类中完成: