J'ai un problème assez simple à résoudre. J'ai un modèle de partenaire auquel> = 0 utilisateurs sont associés:
class Partner(models.Model):
name = models.CharField(db_index=True, max_length=255)
slug = models.SlugField(db_index=True)
user = models.ManyToManyField(User)
Maintenant, si j'ai un objet Utilisateur et un objet Partenaire, quelle est la façon la plus Pythonique de vérifier si l'Utilisateur est associé à un Partenaire? Je veux essentiellement une instruction qui renvoie True si le User
est associé au Partner
.
J'ai essayé:
users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug)
if request.user.pk in users:
# do some private stuff
Cela fonctionne, mais j'ai le sentiment qu'il existe une meilleure façon. De plus, cela serait-il facile de rouler dans un décorateur, sauf que j'ai besoin à la fois d'un paramètre nommé (slug
) et d'un objet de demande (user
).
Toute aide serait très appréciée.
if user.partner_set.filter(slug=requested_slug).exists():
# do some private stuff