Упорядочить объекты Django случайным образом - PullRequest
0 голосов
/ 09 февраля 2010

Вот интересная проблема, у меня есть список пользователей, который я перечисляю в порядке рейтинга, и там, где два пользователя имеют одинаковый рейтинг, у меня есть случайное число, которое я использую, чтобы убедиться, что список не всегда будет то же самое.

В настоящее время я делаю это, выполняя запрос:

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

Но меня поразило, когда я реорганизовал большое приложение Django в несколько меньших, что я жестко закодировал имя таблицы в этот SQL (и это сломало мои модульные тесты), и мне действительно нужно было использовать собственный ORM для достичь этого.

Как я могу получить тот же результат, но используя вместо этого django.contrib.auth.User и модель профиля Django?

1 Ответ

3 голосов
/ 09 февраля 2010

Согласно документации вы можете использовать специальное "?" имя поля:

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