django-cms 4.1.4安装与文档不符,自定义模板无法选择求助
Django-CMS 4.1.4 安装后与文档不符及自定义模板无法选择的解决方法
一、安装内容与官方文档不符的原因
1. 缺失django-cms-quickstart/backend/templates目录
Django-CMS 4.x版本后,快速启动模板的结构已调整,不再使用旧版的django-cms-quickstart/backend/templates目录。当前默认依赖django-cms-bootstrap5包提供模板,你看到的bootstrap5/base.html正是来自这个包,属于正常情况,是文档未及时更新导致的差异。
2. CMS_TEMPLATES默认仅配置base.html
Django-CMS 4.1.4的默认配置确实只包含("base.html", _("Standard")),官方文档中提到的fullwidth.html是旧版(3.x)的默认模板,新版已调整为以base.html作为基础模板,通过继承bootstrap5/base.html实现基础布局。
你的base.html内容是正常的,它的作用是作为项目的基础模板入口,继承自bootstrap5的模板:
{# Replace this with your base template #} {% extends "bootstrap5/base.html" %}
二、自定义模板无法选择的排查步骤
要让自定义模板出现在页面创建的选项中,需确保以下几点:
1. 模板文件位置正确
将onepage3.html放在项目的templates目录下(比如项目根目录的templates/,或者对应app的templates/目录),确保Django能找到该模板文件。
2. 模板必须包含至少一个占位符
Django-CMS要求页面模板必须包含{% placeholder %}标签,否则不会被识别为可用模板。示例模板结构:
{% extends "base.html" %} {% load cms_tags %} {% block content %} {% placeholder "main_content" %} {% endblock %}
3. 检查CMS_TEMPLATES配置的正确性
- 确保已导入
gettext(如果使用翻译):在settings.py顶部添加from django.utils.translation import gettext_lazy as _ - 确认模板路径正确:如果模板在
templates/根目录,直接写'onepage3.html';如果在子目录(比如templates/custom/),需写'custom/onepage3.html' - 示例配置:
CMS_TEMPLATES = [ ("base.html", _("Standard")), ("onepage3.html", _("One Page Template")), # 自定义模板 ]
4. 清除缓存并重启服务器
执行以下命令清除Django缓存,然后重启开发服务器:
python manage.py clearcache python manage.py runserver
内容的提问来源于stack exchange,提问作者user1045680
相关产品推荐
相关产品推荐

