Pergunta

Aqui está um problema interessante, tenho uma lista de usuários que listo em ordem de classificação e, onde dois usuários têm a mesma classificação, tenho um número aleatório que uso para garantir que a lista nem sempre seja a mesma.

Atualmente faço isso executando uma consulta:

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

Mas isso me impressionou ao refatorar um grande aplicativo de django em vários menores que eu codificava o nome da tabela nesse SQL (e ele quebrou meus testes de unidade) e eu realmente deveria estar usando o ORM nativo para conseguir isso.

Como posso obter o mesmo resultado, mas usando o django django.contrib.auth.user e um modelo de perfil?

Foi útil?

Solução

De acordo com a documentação Você pode usar um especial "?" Nome do campo:

    class Meta:
        ordering = ('colum1', '?')
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top