3

Добрый день, тут хочу для себя разьяснить что лучше, точнее предпочтительнее, "рисовать" самому форму или просто воспользоваться from django import forms, а в html просто вывести {{ form }}, т.к. и ежу понятно, что если у тебя всего пара полей, то можно особо не выдумывать и вывести через {{ form }}, а если у меня десяток полей, где надо ввести и числа и строки и сделать выбор из селектов....

Nofate
  • 34,603
ItaRi
  • 85

1 Answers1

3

Возможностей для кастомизации форм довольно много.
В forms можно указать нужные виджеты для полей. В темплейтах можно использовать встроенные методы для форм

{{ form.as_p }} {{ form.as_table }}

Можно обращаться к определенным полям и добавлять их в нужные теги

<p>{{ form.some_field }}</p>

Можно использовать батарейки, как crispy_forms

Лучше всего почитать документацию по формам и выбрать что то подходящее для вашей проблемы.

Ivan Semochkin
  • 1,720
  • 11
  • 19
  • Ну да, документация само сабой, но пока склоняюсь, что мне легче самому отрисовать форму, хотя хочеться делать через forms и тут сразу проблема с css, тк где то легко подключить attrs, а где то, как к примеру с ChoiceField, получаю ошибку object has no attribute 'is_hidden'. – ItaRi Feb 15 '16 at 07:35
  • Синтаксис шаблонизации - jinja? – Nick Volynkin Feb 19 '16 at 05:54
  • @NickVolynkin нет, стандартный – Ivan Semochkin Feb 19 '16 at 06:01
  • @Baterson посмотрел. Вроде бы мы оба правы: Jinja - это стандартный синтаксис шаблонизации в Python )) https://en.wikipedia.org/wiki/Jinja_%28template_engine%29. Django же на Python – Nick Volynkin Feb 19 '16 at 06:03
  • @NickVolynkin я хотел сказать, что это дефолтный язык шаблонов Django, Jinja надо подключать отдельно django.template.backends.jinja2.Jinja2 – Ivan Semochkin Feb 19 '16 at 06:09