使已删除的页面仅临时删除。

wagtail-trash的Python项目详细描述


摇尾式垃圾桶

按delete键时,页面将被扔进“垃圾桶”,而不是删除页面。

安装

首先安装python包: pip install wagtail-trash

然后将其添加到您的INSTALLED_APPS

INSTALLED_APPS=[# ..."wagtail_trash",]

执行迁移,等等!

工作原理

Wagtail垃圾桶的工作原理是钩住Wagtail钩子before_delete_page并覆盖delete视图。 页面将被移动到特殊的“垃圾”页面,而不是删除页面。删除的页面和所有子体将取消发布。 从Wagtail管理中的垃圾桶可以永久删除页面或恢复页面。还原页面还将重新发布删除时发布的页面。 如果已删除页面的父级在垃圾桶中或被永久删除,则仍然可以通过提供备用父级来还原这些页面。

注意事项

由于Wagtail垃圾桶使用钩子before_delete_page,如果您定义了一个返回状态代码的钩子,那么它可能会干扰您的应用程序before_delete_page。确保wagtail trash是最后一个运行的钩子,否则您的自定义before_delete_page可能不会运行,因为wagtail trash不调用它。

另外,Wagtail垃圾箱通过取消发布来“删除”页面,因此,如果您使用的查询集不会筛选出未发布的页面,垃圾桶中的页面可能会显示出来。有一个经理可以为您解决这个问题,例如:

^{pr2}$

权限:如果删除受限制区域下的页面,则此页面将被移动,从而获得新的权限。用户可能不被允许查看“秘密页面”下的页面,但当该区域下的页面被移动到垃圾桶时,“秘密页面”的权限将消失,因此用户现在可以在垃圾桶中看到该页面。 这是一个可解决的问题,将在以后的版本中修复。

定期清理垃圾箱

包含一个名为empty_trash的管理命令,它接受一个必需的参数--older_than_days。要删除存储箱中存放超过30天的所有项目,请运行以下命令:

./manage.py empty_trash --older_than_days=30

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

推荐PyPI第三方库


热门话题
java我应该关闭tcp连接吗?   java指定初始化一个有引用和没有引用的类之间的区别   Java JSON反序列化错误   java将InputStream插入PostgreSQL   java Android屏幕在活动启动时取消伪装   java两个字符串实例看起来相同,但它们的哈希代码不同   java如何创建**数字**而不是字符串的数组列表?   java我可以确定由正则表达式模式匹配的第一个字符集吗?   java以编程方式更改日期范围的日期格式   java Hibernate在加载时填充自动连接字段   java如何使两个不相关的实体(两个存储库)同时在一个项目中运行?可能吗?   使用singlechildevent检索java Firebase数据   在安卓中尝试动态添加片段时未找到java ID   在HTML中编码Java GB2312字符串无法正确显示   java在缓慢的消费卡夫卡上处理背压并避免重新平衡   由hibernate生成的java查询过于冗长