Это работает? Он должен удалить все сводные элементы.
@hooks.register("construct_homepage_summary_items")
def remove_all_summary_items(request, items):
items.clear()
Обновление
Если вам нужно, чтобы ваши хуки запускались в определенном порядке, вы можете передать параметр порядка.
@hooks.register('name_of_hook', order=1) # This will run after every hook in the wagtail core
def my_hook_function(arg1, arg2...)
# your code here
Кажется, что хук элемента страницы выполняется до вашего хука, а элементы изображения и документа - после него. Это меня удивляет, поскольку было бы логичным, чтобы все хуки Wagtail запускались одновременно: перед любым пользовательским кодом.
Порядок приложений также влияет на порядок выполнения. В качестве альтернативы параметру order вы можете создать новое приложение (с именем hooks?) И разместить его после приложений Wagtail в INSTALLED_APPS. Нужны только файлы __init__.py
и wagtail_hooks.py
. Крючки в этом приложении будут выполняться после крючков Wagtail. Страница, до c и изображения находятся в элементах и могут быть удалены.
from wagtail.core import hooks
@hooks.register("construct_homepage_summary_items")
def remove_all_summary_items(request, items):
items.clear()
items.append(YourSummaryItem)