使已删除的页面仅临时删除。
wagtail-recycle-bin的Python项目详细描述
摇尾回收站
按delete键时,页面将被扔进“回收站”,而不是删除页面。在
安装
首先安装python包:
pip install wagtail-recycle-bin
然后将其添加到您的INSTALLED_APPS
:
INSTALLED_APPS=[# ..."wagtail_recycle_bin",]
执行迁移,等等!在
工作原理
Wagtail回收站的工作方式是挂接到Wagtail钩子before_delete_page
并重写delete视图。
页面将被移动到特殊的“回收站”页面,而不是删除页面。删除的页面和所有子体将取消发布。
从Wagtail admin的回收站可以永久删除页面或恢复页面。还原页面还将重新发布删除时发布的页面。
如果已删除页的父级在回收站中或已永久删除,则仍可以通过提供备用父级来还原这些页。在
注意事项
由于Wagtail回收站使用钩子before_delete_page
,如果您定义了一个返回状态代码的钩子,那么它可能会干扰您的应用程序before_delete_page
。确保wagtail回收站是最后一个运行的钩子,否则您的自定义before_delete_page
可能无法运行,因为wagtail回收站不调用它。在
另外,Wagtail回收站通过取消发布来“删除”页面,因此,如果您使用的查询集不过滤未发布的页面,则可能会显示回收页面。有一个经理可以为您解决这个问题,例如:
^{pr2}$权限:如果删除受限制区域下的页面,则此页面将被移动,从而获得新的权限。用户可能不被允许查看“机密页”下的页面,但当此区域下的页面移动到“回收站”时,“机密页面”的权限将消失,因此用户现在可以在回收站中看到它。 这是一个可解决的问题,将在以后的版本中修复。在
定期清理垃圾箱
包含一个名为empty_recycle_bin
的管理命令,它接受一个必需的参数--older_than_days
。要删除存储箱中存放超过30天的所有项目,请运行以下命令:
./manage.py empty_recycle_bin --older_than_days=30
- 项目
标签: