扩展名为.html的Django平面页面

时间:2018-07-21 09:59:26

标签: django url django-flatpages

我正在尝试设置django平面页面,这些页面可以通过类似/pages/page1.html而不是/pages/page1的URL进行访问。

紧跟flatpages docs之后,而不是平板中间件在根urls.py(与settings.py所在的文件夹中)中使用以下代码:

re_path('pages/.*\.html$', include('django.contrib.flatpages.urls')), 

但这会导致404错误。

我尝试将扩展名指定为非捕获组:

re_path('pages/.*(?:\.html)$', include('django.contrib.flatpages.urls')),

但是我仍然得到404。

拥有.html后缀的平板电脑的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您不能以这种方式使用SelectedItem()。比赛的include部分将被丢弃,而不会传递到平面视图。

但是您可以直接连接您的平面视图,并捕获组中的url部分。

由于平板应用程序要求.*部分必须具有正斜杠(url),因此必须使用替换{{{ 1}}扩展名为/foobar/

flatpage

或者,您可以简单地编写自己的平面视图。 It doesn't do anything very complicated

在文档中还有更多有关如何配置平面路由的示例。 https://docs.djangoproject.com/en/2.0/ref/contrib/flatpages/#using-the-urlconf