2012-10-30 39 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')) 
相关问题