查看 ManyToManyField 中的用户
See if user in ManyToManyField
我正在尝试查看当前用户是否在 collaborators
m2m 字段中,但不断收到错误提示:
Cannot query "John Doe": Must be "Company" instance.
有人可以帮我解决条件语句吗?
models.py:
class MyUser():
name = ...
email = ...
class Company(models.Model):
user = models.ForeignKey(MyUser, null=True,
related_name='company_owner',
on_delete=models.SET_NULL)
collaborators = models.ManyToManyField(MyUser, blank=True,
related_name='company_collaborators')
name = models.CharField(max_length=120)
views.py:
def company_dash(request, username):
user = request.user
company = get_object_or_404(
Company, Q(is_active=True), username=username)
# NEED HELP HERE PLEASE
if company.user == user or company.collaborators.filter(company_collaborators=user).exists():
# do something
完整文档是 here
你可以使用
if company.user == user or company.collaborators.filter(collaborators=user):
或
if company.user == user or company.collaborators.filter(id=user.id):
我认为没有必要添加 .exists()
,因为 filter(collaborators=user)
returns 列表如果为空将被评估为 False
。
我正在尝试查看当前用户是否在 collaborators
m2m 字段中,但不断收到错误提示:
Cannot query "John Doe": Must be "Company" instance.
有人可以帮我解决条件语句吗?
models.py:
class MyUser():
name = ...
email = ...
class Company(models.Model):
user = models.ForeignKey(MyUser, null=True,
related_name='company_owner',
on_delete=models.SET_NULL)
collaborators = models.ManyToManyField(MyUser, blank=True,
related_name='company_collaborators')
name = models.CharField(max_length=120)
views.py:
def company_dash(request, username):
user = request.user
company = get_object_or_404(
Company, Q(is_active=True), username=username)
# NEED HELP HERE PLEASE
if company.user == user or company.collaborators.filter(company_collaborators=user).exists():
# do something
完整文档是 here
你可以使用
if company.user == user or company.collaborators.filter(collaborators=user):
或
if company.user == user or company.collaborators.filter(id=user.id):
我认为没有必要添加 .exists()
,因为 filter(collaborators=user)
returns 列表如果为空将被评估为 False
。