我正在设置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
正在做什么。对这段代码的任何解释都会很棒。谢谢。
答案 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" />