delete
カスタムのメソッドをオーバーライドします(オブジェクトを削除不可にし、「アクティブ」フィールドをfalseに設定しQuerySet
ました)ModelManager
。管理パネルでカスタムマネージャーを無視して、そこから実際にオブジェクトを削除できるようにする方法はありますか?
最初に考えたのは、カスタムマネージャーに別の名前を指定できることです。しかし、今ではデフォルトとして扱われます...そしてobj.delete()をバイパスする方法は?
最初の問題の解決策は、デフォルトと一緒にカスタムマネージャーを追加することです。
objects = models.Manager()
active_manager = EventManager()
2番目の問題の解決策は、カスタムdelete
メソッドにparamを追加することです。
def delete(self, *args, **kwargs):
force = kwargs.pop('force', False)
...
カスタムdelete
メソッドにパラメータを追加できます。例えば:
def delete(self, super=True):
if super:
return self.get_queryset().delete()
else:
# Your custom code here
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加