Конкатенат в шаблоне 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"}

Это работает.

Вернуться на верх