1
の上にカスタムメソッド私の見解ではいくつかのコードは次のようになりますと仮定します:ジャンゴORM、クエリセット
bar = Bar.objects.get(pk=1)
foos = bar.foo_set.filter(VERY_LONG_COMPLEX_FILTERING_LOGIC)
私は明らかにフィルタ法を少しきれいにしたいと思う、そのカスタムメソッドを作成することにより、そのような同じこと、ない:
bar = Bar.objects.get(pk=1)
foos = bar.foo_set.complexfilter()
クラスにどこかにカスタムメソッドを移動するには、完璧なものだろうが、今のところ、私は、ドキュメント内のそのようなものの一切の言及を見つけることができませんでした。助言がありますか?
ありがとうございます。
大丈夫なので、foo_setも同様に呼び出す必要があると思います。:def complexfilter(self):return self.foo_set.filter(); bar.complexfilter()。だから、foo_setプロパティの上でカスタムを行うことはできませんか? – murmun
foo_setを変更するには、カスタムマネージャを使用する必要はありませんか? – Dave
@murmun私はそれが可能だとは思わないが、本当にそれが必要ですか?代わりに、 'Foo'モデル用のcusomマネージャを作成し、パラメータとして' bar'を渡すこともできます。 – DrTyrsa