Comment utiliser le "reverse" de Django relation ManyToMany?
Je viens de l'un des Rails de fond, et je suis d'avoir un peu de mal à faire usage de "l'Association des Méthodes" de Django. J'ai deux modèles (qui ont été simplifiées par souci de concision), comme suit:
class User(models.Model):
username = models.CharField(max_length=100, unique=True)
companies = models.ManyToManyField('Company', blank=True)
class Company(models.Model):
name = models.CharField(max_length=255)
Selon la documentation de Django:
"Il n'importe pas quel modèle est le ManyToManyField, mais vous devriez le mettre dans un des modèles -- pas les deux.".
Donc, je comprends que si j'ai un exemple d'un Utilisateur, l'utilisateur appelé, je peux le faire:
user.companies
Ma question est comment puis-je faire l'inverse? Comment puis-je obtenir tous les utilisateurs qui appartiennent à une Compagnie d'exemple, disons Société:
company.users # This doesn't work!
Ce qui est de la convention pour ce faire? La documentation que j'ai lu n'a pas vraiment le couvrir. J'ai besoin de l'association pour travailler dans les deux sens, donc je ne peux pas tout simplement le déplacer d'un modèle à l'autre.
Vous devez vous connecter pour publier un commentaire.
sera de retour un QuerySet de
User
objets qui appartiennent à une société en particulier. Par défaut, vous utilisezmodelname_set
pour inverser la relation, mais vous pouvez la remplacer fournir unrelated_name
comme paramètre lors de la définition du modèle, c'est à direvoici la documentation pertinente