Как вставить атрибуты поля формы Django в HTML-код?
Я пытаюсь вставить {{field.id}} в атрибуты ввода HTML, но это не работает. Как правильно это сделать?
<input type="text" class="form-control" id="{{field.id}}">
Я также попробовал:
<input type="text" class="form-control" id={{field.id}}>
Вот мой полный код:
{% for field in wizard.form %}
<div class="row">
<label class="col-xs-4" for={{field.id_for_label}}>{{ field.label }}</label>
<div class="col-xs-2">
<div class="form-group">
<input type="text" class="form-control" id="{{field.id}}">
{{field.id}}
</div>
</div>
</div>
{% endfor %}
2 ответа
Вы можете получить сгенерированный идентификатор поля формы следующим образом:
{{ field.auto_id }}
Это дубликат /questions/34993691/kak-poluchit-identifikator-polya-formyi-v-django/34993709#34993709
Изменить: Хотя я не понимаю, почему вы пытаетесь поставить значение идентификатора в качестве атрибута имени. Это приведет к тому, что визуализированный HTML будет
<input name="id_field_name" />
Я бы позаботился об этом автоматически, если бы использовал тег шаблона поля.
Вместо этого я бы попробовал другой подход, чем вы используете, используя django_widget_tweaks для программного добавления атрибутов.
Например, в вашем шаблоне...
{% for field in wizard.form %}
<div class="row">
<label class="col-xs-4" for={{field.auto_id}}>{{ field.label }}</label>
<div class="col-xs-2">
<div class="form-group">
{{field|attr:'class:form-control}}
</div>
</div>
</div>
{% endfor %}
Это автоматически сгенерирует ввод для каждого поля с class='form-control'
как часть тега. Идентификатор / имя будут автоматически обработаны путем рендеринга field
,