2009-10-09 6 views
4

Supposons que j'ai 2 modèles.Instruction Django SELECT, ordre par

Le 2ème modèle a une relation un-à-un avec le premier modèle.

Je voudrais sélectionner les informations du premier modèle, mais ORDER BY le 2ème modèle. Comment puis je faire ça?

class Content(models.Model): 
    link = models.TextField(blank=True) 
    title = models.TextField(blank=True) 
    is_channel = models.BooleanField(default=0, db_index=True) 

class Score(models.Model): 
    content = models.OneToOneField(Content, primary_key=True) 
    counter = models.IntegerField(default=0) 

Répondre

7

Je pense que vous pouvez faire:

Content.objects.filter(...).order_by('score__counter') 

Plus généralement, lorsque les modèles ont une relation, vous pouvez choisir, commander et filtrer par les champs sur le modèle « autre » en utilisant l'attribut pseudo relationshipName__fieldName du modèle que vous sélectionnez.

Questions connexes