U может использовать {% with
шаблон тега следующим образом (документы здесь -> https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#with)
{% with newvar=contextA|add:contextB %}
{{ newvar }}
{% endwith %}
newvar
будет иметь новое значение, если в forl oop где contextA или contextB изменяют свое значение.
Поскольку вы хотите показать значение переменной контекста с именем, равным значению newvar
, способ достижения sh состоит в создании пользовательский шаблонный тег следующим образом:
@register.simple_tag(takes_context=True)
def dynvarvalue(context, dynvarname):
""" Returns the value of dynvarname into the context """
return context.get(dynvarname, None)
Я сделал небольшое подтверждение концепции:
{% with 1building='1 building value' contextA='1' contextB='building' %}
{% dynvarvalue contextA|add:contextB %}
{% endwith %}
, которая дает следующий вывод, который, я думаю, является тем, чем вы являетесь запрашивать:
1 building value
Надеюсь, это поможет.
Примечание: учтите, что если обе переменные могут быть преобразованы в целое число, они не будут объединены и будут суммироваться как сказано в документации (https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#add)
Примечание 2: Я думаю, что есть некоторые предостережения безопасности, которые необходимо учитывать при этом.