У меня есть этот шаблон рендеринга формы в django, и render_field
не работает внутри if-else
:
{% load widget_tweaks %}
{% for field in form %}
<div class="form-group">
{{ field.label_tag }}
{% if form.is_bound %}
{% if field.errors %}
{% render_field field class="form-control is-invalid" %}
{% for error in field.errors %}
<div class="invalid-feedback">
{{error}}
</div>
{% endfor %}
{% else %}
{% render_field field class="form-control is-valid" %}
{% endif %}
{% else %}
{% render_field field class="form-control" %}
{% endif %}
{% if field.help_text %}
<small class="form-text text-muted">
{{ field.help_text }}
</small>
{% endif %}
</div>
{% endfor %}
И это делает это:
Но когда я пробую уменьшенную версию приведенного выше кода, как показано ниже, она все равно не работает:
{% load widget_tweaks %}
{% for field in form %}
<div class="form-group">
{% if field.errors %}
{% render_field field class="form-control is-invalid" %}
{% else %}
{% render_field field class="form-control is-valid" %}
{% endif %}
{% if field.help_text %}
<small class="form-text text-muted">
{{ field.help_text }}
</small>
{% endif %}
</div>
{% endfor %}
И делает это:
Но когда я удаляю все if-else
:
{% load widget_tweaks %}
{% for field in form %}
<div class="form-group">
{{ field.label_tag }}
{% render_field field class="form-control" %}
{% if field.help_text %}
<small class="form-text text-muted">
{{ field.help_text }}
</small>
{% endif %}
</div>
{% endfor %}
Тогда он отображается правильно:
Но мне нужны if-else
для проверки ошибок формы и добавления сообщений об ошибках в форму соответственно, буду признателен за любую помощь. Почему же render_field
не работает с if-else
? Как это решить? Любые другие способы использования widget_tweaks
для отображения ошибки или любые альтернативы widget_tweaks
?