0

私のdjangoアプリにはチームの概念があります。

class Team(models.Model):
    name = models.CharField(max_length=200)
    #snip
    team_members = models.ManyToManyField(User)

現在ログインしているユーザーがメンバーであるすべてのチームを取得したいと思います。の線に沿った何か

Team.objects.all().filter(request.user.id__in = team_members.all())

これは明らかではありません。SQLに直接アクセスせずにそのようなクエリを実行する方法について誰か提案がありますか? 「in」クエリのdjangoドキュメントを見ましたが、ユースケースが見つかりませんでした。

どうもありがとう!ニック。

4

1 に答える 1

4

ここでは必要ありませんin。Django は ManyToMany ルックアップで自動的に処理します。

また、データベース フィールドは、実際には関数のパラメーターとして処理されるため、常にルックアップの左側にある必要があることを理解する必要があります。

実際に必要なものは非常に単純です。

Team.objects.filter(team_members=request.user)

また

request.user.team_set.all()
于 2009-05-20T08:48:11.187 に答える