【Django】解决No FlatPage matches the given query问题

FlatPage是什么东西?

這些頁面很少更新,適合用於隱私政策和條款相關的內容。

将URL、标题和摘要保存在数据库中,从而可以在管理界面中进行更新。

如果使用了Django的CMS、Wagtail等,那就不需要了吧?

实施

    1. 添加INSTALLED_APPS

 

    1. 添加SITE_ID

 

    1. 添加URLconf

 

    1. 迁移

 

    安装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文件,甚至创建自定义表单。

请详细参阅官方网页!

 

广告
将在 10 秒后关闭
bannerAds