Django 检查 ManyToMany 域中的 object

我有一个非常简单的问题要解决,我有一个伙伴模型,它有 > = 0的用户:

class Partner(models.Model):
name = models.CharField(db_index=True, max_length=255)
slug = models.SlugField(db_index=True)
user = models.ManyToManyField(User)

现在,如果我有一个 User 对象并且我有一个 Partner 对象,那么检查 User 是否与 Partner 关联的最好的 Python 方法是什么?我基本上想要一个返回 True 的语句,如果 UserPartner相关联的话。

我试过了:

users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug)
if request.user.pk in users:
# do some private stuff

这个方法可行,但我觉得还有更好的办法。此外,这是否很容易滚动到装饰器,不要忘记我需要一个命名参数(slug)和一个请求对象(user)。

50018 次浏览
if user.partner_set.filter(slug=requested_slug).exists():
# do some private stuff

如果我们只需要知道一个 user对象是否与一个 partner对象相关联,那么我们可以执行以下操作(就像在 这个答案中一样) :

if user in partner.user.all():
#do something