Django 如何反转在​​ Wagtail 中创建的页面?

How to Django reverse to pages created in Wagtail?

我有一个对象的鹡鸰模型。

    class ObjectPage(Page):
        # fields, not really important

我想让前端用户可以编辑该对象,所以我还创建了一个通用更新视图来实现这一点。我的问题是如何使用 Django 的 reverse() 函数指向我的 get_success_url() 方法中编辑的对象:

    class EditObjectPage(LoginRequiredMixin, UpdateView):
        # model, template_name, and fields defined; not really important

        def get_success_url(self):
            return("ObjectPage", kwargs={"slug" : self.object.slug})   # doesn't work
            return("object_page_slug", kwargs={"slug" : self.object.slug})   # also doesn't work

当我在 urls.py 文件中明确定义 URL 名称时,我知道如何执行此操作,但在这种情况下,URL 被创建为 Wagtail 页面并由我的 urls.py:

的这一行处理
url(r"", include(wagtail_urls)),

我一直在搜索文档以了解是否为 Wagtail 页面分配了可以反转的名称,但我在官方文档或此处的 Whosebug 上找不到任何内容。

页面对象提供了一个get_url method - get_success_url应该可以直接接受这个,所以不需要使用reverse

def get_success_url(self):
    return self.object.get_url()

内部 get_url 使用的 URL 路线是 wagtail_serve,所以如果你绝对需要通过 reverse,你可以 replicate the logic there