Question

Dans cette situation, j'ai deux modèles, Comment et Score. La relation est définie dans le modèle Score, comme suit:

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

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

Ma question est la suivante: comment puis-je construire un ensemble de requêtes qui renvoie tous les commentaires et est classé par la valeur de Score?

Merci d'avance!

Martin

Était-ce utile?

La solution

Vous devez modifier votre modèle de score pour utiliser un champ OneToOne et non une clé étrangère. Un FK implique qu'il existe plus d'un score par commentaire, ce qui ne fonctionnerait jamais.

Cependant, dans tous les cas, la requête peut être effectuée comme suit:

Comment.objects.order_by('score__value')

Autres conseils

Je suis encore nouveau à Django, mais je travaille avec cela depuis quelques mois maintenant. Je pense que cet extrait pourrait fonctionner (dans l'ordre croissant, pour une utilisation décroissante '- valeur' ??):

comments = [ score.comment for score in Score.objects.order_by('value').all() ]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top