Wagtail:用于更改子页面顺序的挂钩

问题描述 投票:0回答:2

当 Wagtail 管理中子页面的顺序发生更改时,有什么方法可以挂钩吗?

我们希望破坏菜单组件的缓存,但希望通过发布到设置位置端点来挂钩何时更改排序,从而将缓存清除保持在最低限度。

python django wagtail
2个回答
1
投票

从 Wagtail 2.6.1 开始,我不认为有办法连接到重新排序页面。您可以在 Wagtail 钩子文档中找到所有可用的钩子。

尽管您可以将此作为一项新功能提出。


0
投票

您可以使用

post_page_move
信号,区分移动和重新排序,根据子节点位置检索页面索引(就像Wagtail的
set_page_position
):

from wagtail.signals import post_page_move

def clear_page_url_from_cache_on_move(sender, **kwargs):
    if kwargs['url_path_before'] == kwargs['url_path_after']:
        page = kwargs['instance']
        order = list(kwargs['parent_page_after'].get_children()).index(page)
        print('moved page %s - new order: %d' % (page.title, order))

post_page_move.connect(clear_page_url_from_cache_on_move)
© www.soinside.com 2019 - 2024. All rights reserved.