【Django】解决No FlatPage matches the given query问题
FlatPage是什么东西?
這些頁面很少更新,適合用於隱私政策和條款相關的內容。
将URL、标题和摘要保存在数据库中,从而可以在管理界面中进行更新。
如果使用了Django的CMS、Wagtail等,那就不需要了吧?
实施
-
- 添加INSTALLED_APPS
-
- 添加SITE_ID
-
- 添加URLconf
-
- 迁移
- 安装HTML配置
只需要这5个步骤就可以了。
1. 已安装应用程序
添加网站和平面页面
INSTALLED_APPS = [
...
'django.contrib.sites',
'django.contrib.flatpages',
]
2. 网站编号
我认为管理面板的网址是example.com,我会将其更改为127.0.0.1:8000。
如果不改变 127.0.0.1:8000 而是以添加的方式,会出现 “No FlatPage matches the given query”。
如果想要添加,则将SITE_ID设置为“2”,应该就不会出现错误。
SITE_ID = 1
3. 网址配置
如果设置如下路径,则会变为”pages/设置的路径”的地址。
您可以在管理界面上设置路径、标题、概要等。
urlpatterns = [
...
path('pages/', include('django.contrib.flatpages.urls')),
]
4. 迁移
执行migrate命令后,将创建django_flatpage和django_flatpage_sites两个数据表。
5. HTML文件 (HTML
在初始状态下,flatpages会渲染flatpages/default.html。
现在在使用的 templates 文件夹内创建 flatpages/default.html。
<!DOCTYPE html>
<html>
<head>
<title>{{ flatpage.title }}</title>
</head>
<body>
<h1>{{ flatpage.title }}</h1>
{{ flatpage.content }}
</body>
</html>
完成了!
您还可以根据需要详细设置HTML文件,甚至创建自定义表单。
请详细参阅官方网页!