2016-04-03 7 views
0

これで、場所とメニューオプションのモデルとそれらの間の多対多の関係があります。私がやりたい何Django manytomany filter(relation = noneまたはrelation = xの場合は除外)

はすでに場所に添付されていない表示メニューオプションです。だから私はこれを行った..

options = Options.objects.exclude(location=location_pk) 

しかし、これは現在、リストに表示されている位置関係がないメニューオプションになります。私がやりたい何

は、これら二つの労働組合である:

Options.objects.filter(location=None) 
Options.objects.exclude(location=location_pk) 

私は...

options = options.filter(Q(location=None) | ~Q(location=location_pk)) 

を試してみました...しかし、オプションは、その後、複数の場所~Q(location=location_pk)意志を持っている場合他の場所とちょうど一致します。

誰でも手助けできますか?

私はこれが可能でなければならないと確信しているが、私の部分は、それが可能か解決策が不複雑であることが必要があるかもしれないことではないかもしれないと考えています。

ありがとうございました。

答えて

0

わかりましたので、私は解決策を見つけました。

これは、仕事をするようだ...

Option.objects.exclude(~Q(location=None) & Q(location=location_pk)) 

クエリが起こっている正確に何を参照するために近いSQL出力を見ている必要があります。

それは私が把握することを考えていたよりも時間がかかりませんし、複雑ではありませんでしたことを感謝。 あー

関連する問題