随机订购Django对象

时间:2010-02-08 21:15:32

标签: django django-models django-orm

这是一个有趣的问题,我有一个按照评级顺序列出的用户列表,并且两个用户具有相同的评级,我有一个随机数,我用它来确保列表不会总是相同。

目前我通过执行查询来执行此操作:

   select app_model1.column1, app_model1.colum2, app_model2.column3 
   from app_model1 left join app_model2 
   order by colum1, random();

但是当我将一个大型Django应用程序重构为几个较小的应用程序时,我将这个SQL硬编码到这个SQL中,并且它打破了我的单元测试,并且我应该使用本机ORM实现这一目标。

如何获得相同的结果,但是使用Django的django.contrib.auth.User和Profile模型呢?

1 个答案:

答案 0 :(得分:3)

根据the documentation,您可以使用特殊的“?”字段名称:

    class Meta:
        ordering = ('colum1', '?')