Блокирует оценку тегов шаблона, но не переменных

#django #django-templates

#django #django-шаблоны

Вопрос:

Я использую механизм шаблонов 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 %}"
  

Есть ли способ настроить механизм шаблонов для отображения переменных, но игнорировать теги и фильтры? Или мне лучше всего очистить пользовательский ввод и попытаться удалить все теги и фильтры, которые они могут включать?

Комментарии:

1. Почему необходимо не оценивать теги и фильтры? цель может помочь найти решение.

2. @AhmedNourEldeen Я пытаюсь ограничить доступ пользователей, потому что инструмент, который я создаю, находится на ранних стадиях, и я просто хочу, чтобы поверхность продукта была небольшой (как для простоты, так и для безопасности)