django模型中逻辑/软删除的抽象

soft-delete的Python项目详细描述


Django软删除

Build Statuscodecov

Django软删除为Django模型提供了软删除(逻辑删除)的能力。它还提供了恢复或恢复软删除实例的能力。在

基本用途

  1. 克隆此repo,然后$pip install django-soft-delete
  2. 将softdelete模型添加到已安装的应用程序
  3. 继承要从中获得此功能的所有模型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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
playframework Play Framework 2.5表单对象bean(Java)中的依赖项注入   java从javascript触发小程序按钮   JavaGWT:如何创建我自己的异步方法?   对于JTA事务类型,java JPA更改不会持久化   java如何使用预定义的甲板类制作Black Jack游戏   带有数组的java HashMap find()   从Java中的另一个类接收对象数组的参数?   java IntelliJ错误:Scala 145,错误:scalac:找不到Scala编译器JAR   java Eclipse 404请求的资源不可用   java Chuck没有界限   java阅读行每隔一行跳过一行   java如何访问我的EAR部署信息   Java中的正则表达式,其中执行搜索的文本是动态变化的   java我需要优化BigInteger的toString()方法   java Google Map Api V2,自定义路线标记   java如何在Java8中与LocalDate实现更少的需求和更高的质量   EclipseUML插件生成Java源代码   将数据库列绑定到java jComboBox和JList   java如何将两个图像合并为PDF