使已删除的页面仅临时删除。
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
- 项目
标签: