Изменить формы Django - PullRequest
2 голосов
/ 15 июня 2010

Я недавно разрабатывал на платформе django и наткнулся на формы Django (forms.Form / forms.ModelForm) как способы создания <form> html.

Теперь, это великолепно для быстрых вещей, но то, что я пытаюсь сделать, немного сложнее. Рассмотрим DateField - моя текущая форма имеет поля для дня, месяца и года и строит объект даты python из этого. Однако форма django создает одно текстовое поле, в котором необходимо ввести правильный формат (скажем, 2010-06-15). В качестве другого примера, для больших полей мне нужно заменить <input> на <textarea>.

Я бы хотел воспользоваться формами Django для простой проверки, но мне нужно что-то более простое для моих пользователей. Поэтому мой вопрос: могу ли я перехватить рендеринг одного из этих объектов, чтобы выписать HTML, как мне нравится? Если да, то должен ли я писать все самостоятельно или я могу делать только те объекты, которые хочу переписать?

Заранее спасибо.

1 Ответ

1 голос
/ 15 июня 2010

Да, вы можете.

Вам просто нужно переопределить виджет по умолчанию, который отображается для поля.
Посмотрите в документации для всей необходимой информации.

Вы также можете определить собственные виджеты, если возникнет такая необходимость, например, поле даты, отображаемое с выпадающими списками вместо одного текстового поля.

Google для них, там уже есть несколько изящных виджетов:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...