0

たとえば、のリストを取得したいとしますUser。私の現在のクエリセットは次のようになります

creator_list = User.objects.filter(
    Q(userprofile__place__managers=user) |
    Q(pk=user.pk)
)

私は私が同じ結果を得ることができることを知りました...managers=user.pk

creator_list = User.objects.filter(
    Q(userprofile__place__managers=user.pk) |
    Q(pk=user.pk)
)

...=user.pkパーツを簡単に落とせることに気付くまで、ずっと書いていましたpk。では、2番目のQ()節で、そのpk部分も削除することは可能ですか?したがって、私はそれを次のように見せたい

creator_list = User.objects.filter(
    Q(userprofile__place__managers=user) |
    Q(something=user)
)

これはモデルの主キー(整数)を取り込むことを理解していpkますが、モデルにフィルターが必要であることがすでにわかっているのに、なぜそれを指定する必要があるのですかUser

4

1 に答える 1

2

残念だけど違う。フィールドルックアップにはフィールドが必要です。したがって、モデルによって示される行を具体的に参照する方法がないため、PKを使用する必要があります。

于 2012-04-12T22:46:46.017 に答える