0
私はDjangoの初心者、特に継承ツールです。 は、私は次のようなアーキテクチャを持っている:Djangoの子クラスは親抽象クラスのオーバーロードされたsaveメソッドを継承します
class BaseMixin(models.Model):
effective_from = models.DateTimeField(blank = True, null = True)
class Meta:
abstract = True
class QuerySetManager(models.Manager):
def get_queryset(self):
# ...
def __getattr__(self, attr, *args):
return getattr(self.get_queryset(), attr, *args)
def save(self, *args, **kwargs):
# I want this method to be deployed for my_model_instance.save()
class MyModel(BaseMixin):
# ...
objects = QuerySetManager()
class Meta:
managed = False
db_table = 'my_model'
class QuerySet(QuerySet):
# ...
だから私の目標は、my_model_instanceし、変更を保存しようとしたときQuerySetManager
のsave
メソッドを呼び出すことです。問題は、私はメソッドをBaseMixin
にオーバーロードする必要がありますか?またはQuerySetManager
にありますか?私は両方とも結びついていますが、今のところ、Djangoはどちらの場合も私のカスタム保存メソッドを無視しています。
Bipulさんはあなたの回答をすべて正直に理解していませんでした。そして、そのようなアプローチでsaveメソッドを呼び出す構文は何ですか? –
'def save'は単なる単純なビューですか? –
残念なことにdef saveはインデントの問題でした:)もっと多くの例が追加されました。 –