You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:42:40