2012-10-30 37 views
3

我有一個模型「組織」,這有以下領域是否有可能用邏輯或在Django

class Organization(models.Model): 
    members = models.ManyToManyField(User,related_name='org_members') 
    title = models.CharField(max_length=200) 
    description = models.TextField() 
    founder = models.ForeignKey(User,related_name='org_founder') 
    def __unicode__(self): 
     return self.title 

查詢要查詢來獲取所有單位,其中一個用戶是其成員

me=User.objects.get(username='damon') 
Organization.objects.filter(members=me) 

同樣要進行查詢來獲取所有單位,其中用戶是一個創始人

Organization.objects.filter(founder=me) 

我想編寫一個查詢這將把我所有的用戶是其成員的課程或者他是創始人的課程拿給我。

我嘗試這樣做如下

Organization.objects.filter(members=me or founder=me) 

這將導致Invalid Syntax錯誤

誰能告訴我如何使這個查詢

回答

9

要與邏輯查詢或者,您需要使用默認的Q對象:

from django.db import models 
Organization.objects.filter(models.Q(members=me) | models.Q(founder=me)) 
2

使用Q對象。這會幫助你解決你的問題。

3
from django.db.models    import Q 

Organization.objects.filter(Q(members='me') | Q(founder='me')) 
相關問題