9/09/2007

Django Rapidinhas (1)

Ordenar model's randomicamente no Django

Eu resolvi fazer uma série de post's rápidos de dicas sobre Django. As 'Django Rapidinhas'.

E o tema de hoje é ordenar model's randomincamente no Django. Para isso precisamos de um model de exemplo. Vamos criar um model que represente um Aluno de uma escola ou faculdade.

class Aluno(models.Model):
nome = models.CharField(max_lenght=40)
idade =
models.IntegerField()

Para retornarmos em uma lista todos os usuários usando o ORM do Django usamos o método all():

>> Aluno.objects.all()

Para ordenarmos essa lista usamos o método order_by, que necessita de um parâmetro informando o nome do campo que será a referência para a ordenação. Para um ordenação descendente adicionamos o '-' ao início do parâmetro e para uma ordenação ascendente não adicionamos nada, só o nome do campo basta.

Ordenar por nome, de forma ascendente:

>> Aluno.objects.all().order_by('nome')

Ordenar por nome de forma descendente:

>> Aluno.object.all().order_by('-nome')

E para ordenar randomicamente? É difícil?

A resposta é não. Pelo contrário. É muito fácil. É só passar uma interrogação (?) como parâmetro.

>> Aluno.objects.all().order_by('?')

Fácil não?

Um comentário:

Gilson Luiz Rauschkolb disse...

Show amigo, parabéns uma rapidinha muito útil, obrigado por compartilhar.