0

モデル内の 3 つの manytomany フィールド内を検索して、ユーザーがこれらのフィールドのいずれかに含まれているかどうかを確認しようとしています。3 つのフィールドすべてに Q を使用していますが、実際に結果を確認する方法が見つからないようです。

raid_teams = Team.objects.filter(Q(tanks__contains=profile.pk) or Q(healers__contains=profile.pk) or Q(dps__contains=profile.pk))

私はおそらくこれについて完全に間違った方法で進んでいます。誰かが私を正しい方向に向けることができることを願っています。

4

1 に答える 1

1

__contains は、大文字と小文字を区別する包含検索 ( https://docs.djangoproject.com/en/dev/ref/models/querysets/#contains ) に使用されます。プレーン ID の等価一致が必要なだけです。

raid_teams = Team.objects.filter(
    Q(tanks__id=profile.pk) |
    Q(healers__id=profile.pk) | 
    Q(dps__id=profile.pk)
)
于 2013-11-01T12:33:53.687 に答える