Правильный способ реализации разметки 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()})
Другие вопросы по тегам