Пользовательский 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

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