Pergunta

Nesta situação eu tenho dois modelos, Comentário e Score. A relação é definida no modelo de pontuação, assim:

class Comment(models.Model):
    content = TextField()
    ...

class Score(models.Model):
    comment = models.ForeignKey(Comment)
    value = models.IntegerField()

A minha pergunta é: Como faço para construir um queryset que retorna todos os comentários e é ordenada pelo valor do Índice

?

Agradecemos antecipadamente!

Martin

Foi útil?

Solução

Você deve alterar o seu modelo de pontuação de usar um campo OneToOne, não um ForeignKey -. Uma FK implica que há mais de um Score por comentário, que nunca iria trabalho

No entanto qualquer forma, a consulta pode ser feito assim:

Comment.objects.order_by('score__value')

Outras dicas

Eu ainda sou novo para Django, mas vindo a trabalhar w / it por alguns meses agora. Eu acho que este trabalho trecho de poder (em ordem ascendente, descendente para uso '-value'):

comments = [ score.comment for score in Score.objects.order_by('value').all() ]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top