Джанго-набор запросов и шаблоны - PullRequest
0 голосов
/ 11 февраля 2012

Я новичок в django, и я создал небольшую страницу, используя формы. Когда я иду к шаблону и использую теги шаблона, такие как:

{{form.q}}

все хорошо, и я вижу поле ввода формы. Однако мне не очень нравится поле ввода, которое он предоставляет, и я хочу переопределить эту функцию.

Итак, в моем HTML я бы что-то вроде:

<input id="customfield" name="q" type="text"/>

Я попробовал выше, и все, кажется, работает нормально. Однако, если я использую, например:

<input id="customfield" name="{{form.q}}" type="text"/>

это не работает. Итак, мой вопрос:

[1] Можно ли использовать name = "q" или как можно указать {{form.q}}, если у меня есть пользовательский ввод? [2] Есть ли какие-либо недостатки (например, внедрение SQL) при использовании name = "q" по сравнению с простым использованием {{form.q}}?

Извините за 101 вопрос!

1 Ответ

0 голосов
/ 11 февраля 2012

Это именно то, как вы бы построили форму, если бы вы хотели такой большой контроль в шаблоне.

Вы пошли бы по этому курсу, когда другие ярлыки Django потерпели неудачу, например, одна из сборок в widgets, определяющая способ визуализации вашего поля.

Обновление: после прочтения вашего комментария, если вы просто хотите добавить атрибуты к элементу input, вы можете передать виджет в словарь, содержащий пары attribute:value.

q = forms.CharField(widget=forms.TextInput(attrs={'class': 'foobar'}))

Внедрение SQL здесь неуместно (вы будете беспокоиться об этом, когда пользователь имеет какое-то отношение к SQL, написанному на вашем сервере), и нет никаких недостатков, кроме того, что код сложнее писать и поддерживать.

...