我正在使用Wagtail的after_create_page
和after_edit_page
挂钩将数据推送到外部服务,我想根据响应显示错误或成功消息。有没有办法挂钩发布页面后出现的Flash消息?
答案 0 :(得分:0)
您可以将Wagtail内部消息API用作wagtail_hook
的一部分。这没有记录,但我已经在本地使用Wagtaildemo应用程序进行了测试。
Wagtail messages API接受请求对象,可用于呈现成功/错误/警告消息以及该请求的响应。
所有邮件似乎只是附加邮件,因此您的错误邮件会显示在正在创建的网页的成功邮件下。
以下示例代码。
# my_aap/wagtail_hooks.py
from wagtail.wagtailcore import hooks
from wagtail.wagtailadmin import messages
@hooks.register('after_edit_page')
def do_after_page_edit(request, page):
messages.success(request, "Looking good")
@hooks.register('after_create_page')
def do_after_page_create(request, page):
messages.error(request, "Failed to send items to external server")
这些消息不会影响编辑或创建页面响应视图的整体HTTP响应。
您还可以在wagtailadmin/views/pages.py创建和编辑页面时查看内部消息API的使用方式。您甚至可以非常轻松地在消息上创建按钮。