Je veux trier un QuerySet de contacts par un champ connexe. Mais je ne sais pas comment. Je l'ai essayé comme ça, mais ça ne marche pas.django classer par domaine connexe
foundContacts.order_by("classification.kam")
En fait, dans un modèle que je peux accéder à la valeur kam d'un contact par contact.classification.kam car il est une relation OneToOne.
Les modèles (simplifié) ressemblent à ceci:
class Classification(models.Model):
kam = models.ForeignKey(User)
contact = models.OneToOneField(Contact)
class Contact(models.Model):
title = models.ForeignKey(Title, blank=True, null=True)
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
La syntaxe est correcte, mais cela n'a rien à voir avec view vs template. Vous ne pouvez pas du tout faire ce type d'ordre dans le modèle (car la syntaxe du modèle ne vous permet pas d'appeler des fonctions avec des arguments). Mais la syntaxe double-underscore est utilisée pour toutes les traversées de relations * dans * un appel de fonction - filter, annotate, order_by, etc. Alors que la syntaxe normale est pour quand vous avez un objet et que vous voulez faire référence à l'objet. –
La formulation était pauvre et je l'ai enlevé. –
Ok ça marche maintenant. Merci! –