从 Wagtail 2.6.1 开始,我不认为有办法连接到重新排序页面。您可以在 Wagtail 钩子文档中找到所有可用的钩子。
尽管您可以将此作为一项新功能提出。
您可以使用
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)