私は2つのクエリーセットを結合したいと思います。ケースを使用したクエリーセットのフィルター/フィールドの値ではなくモデルフィールドの場合
私はdocumentationに、クエリーセットのフィルタリングに使用できることを見てきました。注釈だけでなく、私が必要とするものです。しかし、フィールドの値ではなく、モデルフィールド自体にケース/時間を使用したいと思います。
プロジェクトは電子商取引です。私はdjango-oscarを使用していますので、ここに投稿するにはモデルがかなり大きいです。知るべきことは、バスケットラインは製品を指し、製品は親、子、またはスタンドアロンのいずれかであることができます。ここで
は私のコードです:バスケットラインは子であること、製品に関連する場合、それはスタンドアロン製品に関連する場合(たのに対し
self.in_stock_lines = basket.lines.filter(product__product_class__track_stock=True, is_customized=False)
事は、私が上でフィルタリングしなければならない分野は、product__parent__product_class__track_stock
です親ではない)、それは私の最初のクエリーセットと同じようにproduct__product_class__track_stock
のままです。
これを行う方法はありますか?あるいは、私は選択肢がありませんが、例えばitertools.chain()
を使って2つのクエリーセットを組み合わせるのですか?
あなたのモデルを投稿してください.....また、mpttを見て、あなたが探しているものを達成するのが簡単かもしれません。製品の製品を持っているとどうなりますか?... https://github.com/django-mptt/django-mptt – Walucas
私の質問を編集しました。モデルが大きすぎてここに投稿できません電子商取引)。しかし、製品の製品の製品は存在しません。それは親子関係またはスタンドアロン(それ自体で)立っています。 – gamabounta