在Wagtail CMS中自定义发布后的Flash消息

时间:2017-06-01 22:08:42

标签: python wagtail

我正在使用Wagtail的after_create_pageafter_edit_page挂钩将数据推送到外部服务,我想根据响应显示错误或成功消息。有没有办法挂钩发布页面后出现的Flash消息?

1 个答案:

答案 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的使用方式。您甚至可以非常轻松地在消息上创建按钮。