我有一个很简单的问题需要解决。我有合作伙伴模型,其中> = 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关联的最Pythonic方法是什么?我基本上想要一个语句,如果User
与Partner
相关联,则返回True。
我试过了:
users = Partner.objects.values_list('user', flat=True).filter(slug=requested_slug)
if request.user.pk in users:
# do some private stuff
这有效,但我觉得有更好的方法。另外,这很容易卷入装饰器,请记住我需要一个命名参数(slug
)和一个请求对象(user
)。
非常感谢任何帮助。
答案 0 :(得分:79)
if user.partner_set.filter(slug=requested_slug).exists():
# do some private stuff