【问题标题】:is it possible to query with a logical OR in django是否可以在 django 中使用逻辑 OR 进行查询
【发布时间】:2012-10-30 14:29:04
【问题描述】:

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

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

谁能告诉我怎么做这个查询

【问题讨论】:

    标签: python django django-queryset


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:
      from django.db.models import Q
      Organization.objects.filter(Q(members='me') | Q(founder='me'))
      

      【讨论】:

        【解决方案3】:

        使用Q 对象。这将帮助您完成您所追求的目标。

        【讨论】:

          猜你喜欢
          • 2021-12-10
          • 1970-01-01
          • 2018-07-18
          • 2015-05-02
          • 2011-06-10
          • 2016-10-08
          • 2012-07-12
          • 1970-01-01
          • 2021-07-24
          相关资源
          最近更新 更多