6

我有一个模型“组织”,其中包含以下字段

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错误

有人可以告诉我如何进行此查询

4

3 回答 3

15

要使用逻辑 OR 进行查询,您需要使用 Q 对象:

from django.db import models
Organization.objects.filter(models.Q(members=me) | models.Q(founder=me))
于 2012-10-30T14:33:56.660 回答
4
from django.db.models import Q
Organization.objects.filter(Q(members='me') | Q(founder='me'))
于 2012-10-30T14:32:52.223 回答
2

使用Q对象。这将帮助你实现你所追求的。

于 2012-10-30T14:31:22.003 回答