Django 块计算模板标记,但不计算变量

Django 块计算模板标记,但不计算变量,django,django-templates,Django,Django Templates,我使用Django的模板引擎来评估用户提供的模板字符串。我希望允许用户使用变量映射功能,但不允许使用标记或过滤器 例如: from django.template import Context, Template user_template_string = "V1: {{ var1 }}. V2: {{ var2|truncatechars:5 }}. {% if var3 %} yes {% else %} no {% endif %}" template = Te

我使用Django的模板引擎来评估用户提供的模板字符串。我希望允许用户使用变量映射功能,但不允许使用标记或过滤器

例如:

from django.template import Context, Template

user_template_string = "V1: {{ var1 }}.  V2: {{ var2|truncatechars:5 }}.  {% if var3 %} yes {% else %} no {% endif %}"
template = Template(user_template_string)

context = {'var1': 'One',
           'var2': '123456789',
           'var3': True}

output = template.render(context=Context(context))
# Desired output:
# "V1: One.  V2: 123456789.  {% if var3 %} yes {% else %} no {% endif %}"

有没有办法将模板引擎配置为渲染变量,但忽略标记和过滤器?或者我的最佳选择是清理用户输入,并尝试去除可能包含的所有标记和过滤器?

为什么不需要评估标记和过滤器?目的可能有助于找到解决方案。@AhmedNourEldeen我正试图限制用户的访问权限,因为我正在构建的工具处于早期阶段,我只想保持产品表面的小型化(为了简单和安全起见)