Todos sabemos que ao atribuir uma referência no order_by do ORM do Django, na verdade, ele irá gerar uma query com o campo pedido na cláusula ORDER BY do Mysql, por exemplo.
Apesar de, na maioria das vezes, as properties envolverem alguma query, não chega a ser um coluna no banco de dados. Então como ordenar por ela?
E lá vamos nós:
class Autor(models.Model):
primeiro_nome = models.CharField(max_length=30)
sobrenome = models.CharField(max_length=40)
email = models.EmailField(blank=True, verbose_name='e-mail')
def _nome_completo(self):
return u'%s %s' % (self. primeiro_nome, self. sobrenome) nome_completo = property(_nome_completo)
def __unicode__(self):
return self.
nome_completo
sorted(Autor.objects.all(), key=lambda a: a.nome_completo)
Seja feliz!Fonte
Nenhum comentário:
Postar um comentário