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 に答える