0
Djangoアプリケーションでは、いくつかのビューに同様のdbクエリが含まれている場合があります。 たとえば、is_active = Trueおよびis_online = Trueのすべてのエンティティのクエリ。 リファクタリング中に、このような重複呼び出しを関数に移動する必要があります。このフィルタ/クエリ関数を配置しなければならない場所が問題です。カスタムクエリ関数はどこに配置する必要がありますか?
1)クラス/エンティティの定義に?しかし、それ自体のフィルタメソッドについて「知って」いることに反対する必要がありますか? これは典型的な解決策だと思われますが、選択がオブジェクトの外部のフィーチャであると感じるので、良いデザインではないかもしれません。一方、オブジェクト内のそのようなメソッドは副作用を生成せず、かなり安全と思われます。 2)filter.Users、filter.Entitiesのようなフィルタリングを扱うモジュール/名前空間には? または他の場所ですか?
ベストプラクティスは何ですか?