Django在django-registration中的字段

时间:2011-05-15 05:18:05

标签: django django-forms django-registration

我正在设置django注册,我在RegistrationForm中遇到了这段代码 -

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 个答案:

答案 0 :(得分:1)

一点测试显示dict(attr_dict,maxlenght = 75)等于

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

因此,当电子邮件字段呈现为html元素时,将向标签添加2个属性,类和maxlength。

答案 1 :(得分:0)

它正在创建一个属性字典,需要在最终呈现的形式中添加验证类型的东西,这样我们就不需要在模板代码中做任何事情来添加验证和安全性。

答案 2 :(得分:0)

django中的每个表单字段都使用一个小部件。您可以在字段创建期间指定它,也可以使用默认小部件。

您在此处指定TextInput

上的小工具EmailField

(attrs = dict(attrs_dict,maxlength = 75))变为:

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

现在这些将作为此窗口小部件的渲染html中的属性出现。因此,为字段email呈现的html看起来像:

<input id="id_email" type="text" class="required" maxlength="75" name="email" />