【问题标题】:Setting flat pages in admin model在管理模型中设置平面页面
【发布时间】:2016-11-20 03:42:03
【问题描述】:

我刚刚为 django 安装了平面页面应用程序,并尝试从 admin 创建平面页面。

所以在我在管理员中创建页面后,网站上有一个选项视图,当我点击它时,我得到页面未找到

我错过了什么?当我将我的名字设置为 /pages/overview/ 时,我仍然找不到页面

【问题讨论】:

  • 你完成installation instructions的第三步了吗?
  • 是的,我做到了,否则它不会以我尝试过的 URL 模式显示页面。(第二个屏幕截图)

标签: django django-flatpages


【解决方案1】:

您已为页面 URL 配置了前缀 ^pages/,这意味着您需要将该前缀添加到您的请求 URL。例如,对于您配置为/help/overview/ 的页面,您可以从http://localhost:8000/pages/help/overview/ 访问它。

您需要使用/pages/ 前缀请求所有页面URL,或者使用documentation 中描述的其他方法之一:

您也可以将其设置为“笼统”模式。在这种情况下,将模式放在其他 urlpatterns 的末尾很重要:

from django.contrib.flatpages import views

# Your other patterns here
urlpatterns += [
    url(r'^(?P<url>.*/)$', views.flatpage),
]

另一种常见的设置是对有限的一组已知页面使用平面页面并对 url 进行硬编码,以便您可以使用 url 模板标签引用它们:

urlpatterns += [
    url(r'^about-us/$', views.flatpage, {'url': '/about-us/'}, name='about'),
    url(r'^license/$', views.flatpage, {'url': '/license/'}, name='license'),
]

最后你也可以使用FlatPageFallbackMiddleware

【讨论】:

  • 谢谢@solarissmoke 问题是当我输入带有页面的表单 url 时出现错误 - 没有 FlatPage 匹配给定的查询。
  • 我已经编辑了答案以澄清。如果您使用/help/overview/ 的 URL 保存页面,那么您可以通过http://localhost:8000/pages/help/overview/ 访问它。不要更改页面本身的 URL。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 2021-04-01
  • 2018-01-26
相关资源
最近更新 更多