我正在尝试设置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
后缀的平板电脑的正确方法是什么?
答案 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