您如何为wagtail / django网页提供自定义网址以供使用?

goo*_*mps 5 python django wagtail

wagtail/django您如何制作一个基本的wagtail Page model,创建html模板,然后告诉该模型充当特定url的视图的方式中?

from django.db import models
from wagtail.wagtailcore.models import Page

class MyPage(Page):
  title = models.CharField(blank=True, null=True, max_length=255)
  #...
Run Code Online (Sandbox Code Playgroud)

我想要网址注册像

url(r'^monkey/(?P<slug>[A-Za-z0-9]+)$', ...)
Run Code Online (Sandbox Code Playgroud)

但我没有一个urls.py公用文件夹将其存储在项目外部。我尝试使用RoutablePageMixin,但我相信这可用于子页面。我也知道在结构内将html模板存储在哪里,所以这不是问题。

小智 0

在 Wagtail 中,您将创建页面类型,然后在 CMS 中创建该页面类型的实例。

即使您只打算使用此页面一次,您仍然需要创建一个类型。遵循此逻辑,页面 url 通过页面的父级和slug在 CMS 内定义。最有可能的是,您可以通过这些方式实现您想要的目标。

如果您想覆盖页面模板并创建自定义 url,您可以覆盖模型上的get_url_parts 方法。

另外,如果您想专门跳过此页面的 Wagtail,请记住 Wagtail 只是基于 Django 构建的。您始终可以创建一个新模块并在该模型中定义 url。如果你检查你的网站urls.py,你会看到 wagtail url 模式。您可以将其更改为如下所示:

urlpatterns = [
    # other urls...
    url(r'wagtail/', include(wagtail_urls)),
    url(r'^monkey/', ('monkey_app.urls', 'monkey_app')),
]
Run Code Online (Sandbox Code Playgroud)