我正在使用一个页面模型'EventPage',它应该有一个基于页面id的插件。为此,我对full_clean方法进行了如下修改(类似于this question):
class EventPage(Page):
...
def full_clean(self, *args, **kwargs):
super().full_clean(*args, **kwargs)
# set slug to id, if already existing
if self.id is not None:
self.slug = str(self.id)这似乎在原则上工作得很好。然而,在页面发布后,Wagtail管理/页面视图在顶部显示一个消息框(‘页面...已创建并发布’),其中包含一个链接到错误url的View live按钮(即使用从页面标题创建的默认插件)。
在下面的页面列表中,刚刚创建的页面自己的View live和Add child page链接使用页面id显示了正确的页面url。需要更正的只是消息框顶部的View live url。这是一个截图:

我怎样才能在顶部的消息框中获得正确的链接?
如果重要的话,我现在使用的是Wagtail 2.9,Django 2.2.9和Python 3.6。我猜我的问题与以下事实有关:页面id直到第一次保存页面时才知道,而消息框中的View live链接不知何故使用了一个初始page.url,该box后来被覆盖。有什么办法解决这个问题吗?
发布于 2020-10-29 00:38:31
您可以通过在Wagtail中使用Hooks来实现这一点。钩子通常用于自定义Wagtail管理员和前端的视频级行为。我建议以这种方式覆盖按钮功能,或者可能删除现有按钮并在中添加您自己的新按钮。有关更多信息,请访问:https://docs.wagtail.io/en/latest/reference/hooks.html
https://stackoverflow.com/questions/64508344
复制相似问题