模板不存在 django flatpages

Template does not exist django flatpages

在 django 中创建了一个 cms 项目,但它没有加载我的 flatpages 默认模板,附件是图像。

谢谢

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'django.contrib.flatpages',
]

SITE_ID = 1

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware'
]

Error page

Directory structure

Admin

您需要对设置文件进行一些更改。

声明一个变量BASE_DIR为:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

然后将TEMPLATES中的DIRS编辑为:

'DIRS': [os.path.join(BASE_DIR, 'templates')],

同时将 cms 的模板文件保存在 cms 文件夹中,例如:

cms>模板>cms>flatpages

您是否在 settings.py 中设置了 TEMPLATES?检查并将 TEMPLATES.DIR 设置设置为您的文件夹路径:

TEMPLATES = {
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
}

此外,您可以将templates文件夹移动到cms文件夹中。在这种情况下,确保 TEMPLATES.APP_DIRS 设置为 True.

cms
+- cms/
 +- templates/
  +- flatpages/
   +- default.html
 +- views.py
 +- other django stuff...
+- db.sqlite3

您可以在官方文档中找到更多信息:https://docs.djangoproject.com/en/2.1/topics/templates/#configuration