質問
カスタムマネージャーに2つ以上の変数を渡す方法があるかどうか疑問に思っていました...異なるビューからの変数が5つありますが、モデルでは、1つに基づいてフィルタリングを処理するマネージャーを宣言しましたこれらの変数のうち...すべての変数がフィルタークエリで考慮されるようにします。これを行う方法はありますか?
class VehicleQuerySet(QuerySet):
def vehicle_query(self, year):
return self.filter(common_vehicle__year__year__exact=year).exclude(status__status='Incoming')
class VehicleManager(models.Manager):
def get_query_set(self):
return VehicleQuerySet(self.model)
def vehicle_query(self, year):
return self.get_query_set().vehicle_query(year)
ビューで:
vehicle_query = Vehicle.smart_objects.vehicle_query(year)
解決
あなたが与えたコードは不必要に複雑だと思います。フィルタリングはマネージャで実行できるため、クエリセットサブクラスを定義する必要はありません。
class VehicleManager(models.Manager):
def vehicle_query(self, year):
return self.get_query_set().filter(common_vehicle__year__year__exact=year).exclude(status__status='Incoming')
しかし、私はあなたの質問を本当に理解していません。 1つの変数をマネージャーメソッドに渡す方法を既に知っていますが、追加の変数を渡すのがさらに難しいのはなぜですか?
所属していません StackOverflow