Django sprawdź, czy obiekt w polu ManyToMany
Mam dość prosty problem do rozwiązania. Mam model Partnera, który ma> = 0 powiązanych użytkowników:
class Partner(models.Model):
name = models.CharField(db_index=True, max_length=255)
slug = models.SlugField(db_index=True)
user = models.ManyToManyField(User)
Teraz, jeśli mam obiekt użytkownika i mam obiekt partnera, jaki jest najbardziej Pythoniczny sposób sprawdzenia, czy użytkownik jest powiązany z partnerem? W zasadzie chcę instrukcji, która zwraca True, jeśliUser
jest powiązany zPartner
.
Próbowałem:
users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug)
if request.user.pk in users:
# do some private stuff
To działa, ale mam przeczucie, że jest lepszy sposób. Dodatkowo, czy byłoby to łatwe do umieszczenia w dekoratorze, biorąc pod uwagę, że potrzebuję zarówno nazwanego parametru (slug
) i obiekt żądania (user
).
Każda pomoc byłaby bardzo mile widziana.