django模型中逻辑/软删除的抽象
soft-delete的Python项目详细描述
Django软删除
Django软删除为Django模型提供了软删除(逻辑删除)的能力。它还提供了恢复或恢复软删除实例的能力。在
基本用途
- 克隆此repo,然后
$pip install django-soft-delete
- 将softdelete模型添加到已安装的应用程序
- 继承要从中获得此功能的所有模型softdelete.models.SoftDeleteModel在
>>> MyModel.objects.create(name='Anakin') >>> MyModel.objects.create(name='Luke') >>> MyModel.objects.create(name='Yoda') >>> luke= MyModel.objecs.filter(name='Luke') >>> MyModel.objecs.filter(name='Luke').delete() >>> MyModel.objects.count()2 >>> MyModel.raw_objects.count()3 >>> MyModel.objects.get(id=luke.id).undelete() >>> MyModel.objects.count()3
样品
^{pr2}$还可以使用SoftDelete django管理器扩展自定义管理器功能。这样做:
#my_model_manager.pyfromsoftdelete.managersimportSoftDeleteManagerclassMyModelManager(SoftDeleteManager):defcreate_john_smith(self):self.model.objects.create(name='Jonh Smith')#my_model.pyfromdjango.dbimportmodelsfrommy_model_managerimportMyModelManagerclassMyModel(SoftDeleteModel):name=models.CharField(max_length=30)objects=models.Manager()my_manager=MyModelManager()
可以通过替代管理器 raw_objects
访问删除实例
forinstinMyModel.raw_objects.all():printinst.name
- 项目
标签: