Джанго поля в Джанго-регистрации - PullRequest
0 голосов
/ 15 мая 2011

Я настраиваю регистрацию в django, и я наткнулся на этот фрагмент кода в форме регистрации -

attrs_dict = { 'class': 'required' }

email = forms.EmailField(widget=forms.TextInput
                        (attrs=dict(attrs_dict, maxlength=75)),
                        label='Email')

Что означает / делает деталь (attrs=dict(attrs_dict, maxlength=75))? Я знаю, что делает часть maxlength, но было неясно, что делает создание словаря, и что делает attrs_dict. Любое объяснение этого куска кода было бы замечательно. Спасибо.

Ответы [ 3 ]

1 голос
/ 15 мая 2011

Небольшая проверка показала, что dict (attr_dict, maxlenght = 75) равно

{'class': 'required', 'maxlength':75}

Поэтому, когда поданное сообщение электронной почты отображается в элемент html, 2 атрибута, класси максимальная длина будет добавлена ​​к метке.

0 голосов
/ 28 марта 2013

Каждое поле формы в Django использует виджет.Вы можете указать его при создании поля или использовать виджет по умолчанию.

Здесь вы указываете виджет TextInput on EmailField

(attrs = dict (attrs_dict, maxlength = 75)) становится:

{'class': 'required', 'maxlength':75}

Теперь они будут присутствовать в качестве атрибутов в визуализированном html для этого виджета.Итак, рендеринг html для поля email будет выглядеть так:

<input id="id_email" type="text" class="required" maxlength="75" name="email" />
0 голосов
/ 14 марта 2012

Это создание словаря атрибутов, которые потребуются для добавления проверочных элементов в окончательно отрендеренную форму, таким образом, нам не нужно ничего делать в коде шаблона, чтобы добавить проверку и защиту.

...