Правильный способ реализации разметки django-widget-tweaks
Я пытаюсь визуализировать форму, используя django-widget-tweaks, чтобы помочь с типами CSS и виджетов. Я выполнил следующие шаги:
Успешно установите твики виджетов с pip3 в моем venv.
Положил 'widget_tweaks',
в INSTALLED_APPS
в settings.py.
Поместите следующее в код шаблона. (Остальные теги шаблона отображаются так, как ожидалось).
{% load widget_tweaks %}
{% render_field form.color0 type="color" id="color0" class+="input-color" %}
<!--replaces <input type="color" id="color0" class="input-color" />-->
мой <input>
элемент не рендерится, когда я использую разметку шаблона (конечно, хорошо рендерится со статическим html). Сервер разработки не показывает ошибок, и если я печатаю myform.as_table()
в оболочке он отображает все поля, поэтому мой Form
объект должен быть правильным. Что я облажался с django-widget-твиками здесь?
Изменить: я также пытался
{{ form.color0 | add_class:"input-color" | attr:"type:color" | attr:"id:color0" }}
Я знаю, что шаблонизатор разбирает его, потому что, если я намеренно ошибаюсь attr
веб-сервер показывает страницу ошибки.
1 ответ
Понял, что form
не был создан до окончания POSTing (когда я отлаживал запрос). Нужно сделать что-то вроде:
if request.method == "POST":
#process the form data
else:
return render(request, "my_template.html", {"form":MyForm()})