DjangoCMS 4.x中static_placeholder为何未显示在结构侧边栏?
DjangoCMS 4.x 中 static_placeholder 不显示的解决方法
在DjangoCMS 4.x新建项目后,按3.x的习惯在模板中添加{% static_placeholder 'footer' %}这类静态占位符,会发现编辑页面的结构侧边栏里根本找不到它——一开始我以为是bug,提交到GitHub后才知道,这不是功能缺失,而是4.x已经用**别名占位符(Alias Placeholders)**替代了原来的static_placeholder。
具体解决方案
替换模板中的写法
把原来的静态占位符标签替换成别名占位符:<!-- 旧写法(3.x) --> {% static_placeholder 'footer' %} <!-- 新写法(4.x) --> {% placeholder 'footer' alias %}在后台创建对应别名占位符
- 登录DjangoCMS后台,进入「占位符」(Placeholders)管理界面
- 点击新建占位符,填写名称(比如
footer),并勾选「别名(Alias)」选项 - 保存后,回到页面编辑模式,就能在结构侧边栏找到这个别名占位符了
编辑全局共享内容
别名占位符的内容是全局共享的,编辑一次后,所有引用该别名的模板都会同步显示最新内容,和3.x中static_placeholder的效果完全一致。
注意事项
- 别名占位符必须先在后台创建,模板中的标签才能正常渲染并在编辑界面显示
- 官方在4.x中弃用
static_placeholder,推荐用别名占位符实现全局共享内容的需求
内容的提问来源于stack exchange,提问作者andzep
相关产品推荐
相关产品推荐

