Использование django-widget-tweaks для нескольких полей
Я использую django-widget-tweaks
для валидации следующим образом
{% if form.is_bound %}
{% if form.action.errors %}
{% render_field form.action class="form-control is-invalid" %}
{% for error in form.action.errors %}
<div class="has-error">
{{ error }}
</div>
{% endfor %}
{% else %}
{% render_field form.action class="form-control is-valid" %}
{% endif %}
{% else %}
{% render_field form.action class="form-control" %}
{% endif %}
Это работает хорошо, но когда я использую два поля, мой код будет.
{% if form.is_bound %}
{% if form.action.errors %}
{% render_field form.action class="form-control is-invalid" %}
{% for error in form.action.errors %}
<div class="has-error">
{{ error }}
</div>
{% endfor %}
{% else %}
{% render_field form.action class="form-control is-valid" %}
{% endif %}
{% else %}
{% render_field form.action class="form-control" %}
{% endif %}
{% if form.is_bound %}
{% if form.action2.errors %}
{% render_field form.action2 class="form-control is-invalid" %}
{% for error in form.action2.errors %}
<div class="has-error">
{{ error }}
</div>
{% endfor %}
{% else %}
{% render_field form.action2 class="form-control is-valid" %}
{% endif %}
{% else %}
{% render_field form.action2 class="form-control" %}
{% endif %}
Это не выглядит круто... Если я использую три, четыре поля, код будет все длиннее и длиннее.
Существует ли лучшая практика для этой цели?
Вы можете попробовать установить его в классе Form
class MyForm(forms.Form):
my_files_field = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple':
True}))