Ceci est mon models.py (j'utilise le modèle par défaut Django utilisateur ainsi):Django - Comment accéder correctement la relation inverse ManyToManyField
class UserExtended(models.Model):
user = models.OneToOneField(User, related_name="userextended_set")
location = models.ForeignKey(Location)
follow = models.ManyToManyField(User, related_name="follow_set")
Maintenant, pour accéder à une liste d'utilisateurs « suivre » d'un utilisateur particulier (les utilisateurs d'un utilisateur particulier est la suite), je ferais quelque chose comme ceci:
a = User.objects.get(username='a')
a.userextended_set.follow.count()
Ma question est, comment puis-je obtenir une liste d'utilisateurs qui un utilisateur particulier est sur le « suivi 'liste de (ie qui le suit)? J'ai essayé ceci:
# Assuming user 'a' is on the 'follow' list of only one users (i.e.
# assuming .get() will only return one user object).
User.objects.get(username='a').follow_set.get().username
mais je reçois une erreur disant
AttributeError: 'UserExtended' object has no attribute 'username'
'User.objects.get (nom d'utilisateur = 'a'). Follow_set.get()' renvoie une instance 'UserExtended' , qui n'a pas de champ "nom d'utilisateur". Le champ 'username' appartient à' User' –
@ CésarBustíos Correct. Comment puis-je obtenir une liste d'utilisateurs qu'un utilisateur particulier est sur la liste 'follow' de (c'est-à-dire qui le suit)? – user2719875
Depuis 'UserExtended' vous pouvez appeler n'importe quelle méthode QuerySet ->' a.userextended_set.follow.all() ' – Gocht