Правильный способ реализации разметки 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-tweaks?

Изменить: я также пробовал

{{ form.color0 | add_class:"input-color" | attr:"type:color" | attr:"id:color0" }}

Я знаю, что механизм шаблонов анализирует его, потому что, если я преднамеренно ошибусь в написании attr, веб-сервер покажет страницу с ошибкой.


person Escher    schedule 02.03.2016    source источник


Ответы (1)


Понял, что form не был создан до тех пор, пока не был отправлен POST (когда я отлаживал запрос). Нужно сделать что-то вроде:

if request.method == "POST":
    #process the form data
else:
    return render(request, "my_template.html", {"form":MyForm()})
person Escher    schedule 03.03.2016