Django verifica se o objeto no campo ManyToMany
Eu tenho um problema bem simples de resolver. Eu tenho o modelo de parceiro que tem> = 0 usuários associados a ele:
class Partner(models.Model):
name = models.CharField(db_index=True, max_length=255)
slug = models.SlugField(db_index=True)
user = models.ManyToManyField(User)
Agora, se eu tenho um objeto User e tenho um objeto Partner, qual é a maneira mais Python de verificar se o usuário está associado a um parceiro? Eu basicamente quero uma declaração que retorna True se oUser
está associado aoPartner
.
Eu tentei:
users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug)
if request.user.pk in users:
# do some private stuff
Isso funciona, mas tenho a sensação de que há uma maneira melhor. Além disso, isso seria fácil de rolar para um decorador, tendo em mente que eu preciso de um parâmetro nomeado (slug
) e um objeto de solicitação (user
).
Qualquer ajuda seria muito apreciada.