2016-10-01 66 views
0

我想看看如果當前用戶是在collaborators M2M領域,但不斷收到一個錯誤說:看看用戶在ManyToManyField

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 

回答

0

全部文檔是here

您可以使用

if company.user == user or company.collaborators.filter(collaborators=user): 

if company.user == user or company.collaborators.filter(id=user.id): 

我覺得沒有必要添加,要進行評估,如果空是False.exists()由於filter(collaborators=user)返回列表。

+0

我收到一個錯誤'經理不能通過公司實例'訪問這兩種方法。 – jape

+0

是的你是對的,我改變了一點,所以它現在可能工作。 – heykarimoff

+0

謝謝!它現在有效 – jape