提供内置逻辑删除功能的基本模型
django-logicaldelete的Python项目详细描述
这是一个小而简单的应用程序,我把它组合在一起,以获得一些重用 我在几乎每个项目和我创建的每个模型中做的事情。太容易了 为了让好的数据被删除并且不可恢复。也太容易了 通过重写模型的delete()方法并仅标记记录来解决此问题 删除,然后利用django的管理器覆盖默认行为 这样逻辑上删除的项就不会在querysets中返回。
不过,我发现有两个例外对这条规则有用。
- 在管理部门,我喜欢看到所有的事情,都有一个是否 它已经被删除,可以过滤到活动记录, (或就此删除)。
- 我仍然认为当一个项目被 主键值,即使对象标记为 删除。
安装Django LogicalDelete
pip install django-logicaldelete
使用django logicaldelite
使用应用程序非常简单:
- 将logicaldelite添加到已安装的应用程序中
- 从logicaldelite.models.model继承您想要的所有模型 共享此功能。
- 使用logicaldelite.admin.modeladmin为每个模型创建和/或注册管理员
附加
逻辑删除是通过在“删除日期”列上加盖日期戳来处理的。此外,为了方便起见,将填充date\u created和date\u modified列。
向后不兼容的更改
1.1
- 在LogicalDeleteManager上将所有内容更改为所有已删除的内容
- LogicalDeleteManager已从logicalDelete.models移动到logicalDelete.managers
- 从logicaldelite.models.model中删除和所有内容