Пользовательский HTML-макет для форм в Django
Я новичок в Django и пытаюсь разобраться в нем. Я проделал свой путь через документацию forms.
А способ Django делает, по сути, следующее:
<form action="/your-name/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
Для отрисовки соответствующего шаблона. Fine.
Я могу визуализировать свои поля:
<div class="fieldWrapper">
{{ form.subject.errors }}
<label for="{{ form.subject.id_for_label }}">Email subject:</label>
{{ form.subject }}
</div>
И я могу настроить отображение поля с помощью widgets.
class CommentForm(forms.Form):
name = forms.CharField(widget=forms.TextInput(attrs={'class': 'special'}))
url = forms.URLField()
comment = forms.CharField(widget=forms.TextInput(attrs={'size': '40'}))
Пока что я использую некий "стандартный механизм рендеринга", который позволяет мне немного настраивать вещи.
Вопрос: Есть ли способ разработать макет формы более html-подобным образом?
Скажем, вместо {{ form.subject }}
- рендеринг шаблона по умолчанию, обогащенного информацией о виджетах из откуда-то еще из кодовой базы - наличие чего-то вроде <input type="text" minlength="10" class="wiggle" value="{{form.subject.value}}>
.
Что для меня было бы более прямолинейным.
Вы можете использовать django-crispy-forms, django-crispy-forms Docs