Конкатенат в шаблоне django
Почему в этом сниппете id="{{field_index}}" пустой, он не выводит мне "field_version_" или "field_controparte" в зависимости от ключа?
<form id="formDoc" style="margin-top: 10px;" action="/" method="post">
{% for keyFi,valueFi in tmplVar.jsonKeysDocFields.items %}
{% with field_index="field_"|add:keyFi|stringformat:"s" %}
<div style="margin-bottom: 5px; display: none;" id="{{field_index}}" class="docFieldWrapper"
Согласно документации шаблона фильтра add:
Сначала этот фильтр попытается привести оба значения к целым числам. Если это это не удастся, он попытается сложить значения в любом случае. Это сработает на некоторых типах данных (строки, список и т.д.) и потерпит неудачу на других. Если результат будет пустой строкой.
Я предполагаю, что ваша переменная keyFi имеет тип None или какой-то другой. Попробуйте отладить и проверить, какое значение принимает эта переменная.
Я также пытался создать пользовательский тег
файл pyconcat_tags.py
from django import template
register = template.Library()
@register.filter
def concat_string(value_1, value_2):
return str(value_1) + str(value_2)
файл home.html
{% load pyconcat_tags %}
<form id="formDoc" style="margin-top: 10px;" action="process2_module_doc.php" method="post">
{% for keyFi,valueFi in tmplVar.jsonKeysDocFields.items %}
{% with field_index="field_"|concat_string:keyFi %}
<div style="margin-bottom: 5px; display: none;" id="{{field_index}}" class="docFieldWrapper">
Output me field_0, field_1 depending keyFi={"0":"version", "1": "controparte"}
Это работает.