如何在Django模板的CKEditor中渲染{{}}变量?
解决Django-ckeditor中插入变量无法正常显示的问题
- 检查CKEditor核心配置:CKEditor默认可能会过滤或转义
{{ 变量名 }}这类模板变量格式,需调整allowedContent配置,明确允许这类语法不被修改;也可自定义内容过滤规则,确保变量标记完整保留。 - 确认视图层变量传递:确保视图中传递给模板的
msg或message内容未被提前转义,比如不要在视图中手动调用escape()方法,保证内容是原始的包含变量标记的字符串。 - 自定义模板标签解析变量:如果需要让字符串中的Django模板变量被实际解析(而非仅不转义),
safe和autoescape off无法实现这个功能,需自定义模板标签来渲染字符串中的模板语法:- 在你的app目录下创建
templatetags/custom_tags.py,写入代码:from django import template from django.template import Template, Context register = template.Library() @register.simple_tag(takes_context=True) def render_var(context, content): return Template(content).render(context) - 在模板中加载标签并使用:
{% load custom_tags %} {% render_var msg %}
- 在你的app目录下创建
- 启用CKEditor模板插件:CKEditor自带
template插件,开启后可规范插入变量的流程,同时确保变量标记在保存和渲染时不被破坏。
内容的提问来源于stack exchange,提问作者Mohammad Ali Daberi
相关产品推荐
相关产品推荐

