0

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

4

3 回答 3

1

一些测试表明dict (attr_dict, maxlenght=75) 等于

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

所以当email文件被渲染到一个html元素时,标签中会添加2个属性,class和maxlength。

于 2011-05-15T05:25:37.350 回答
0

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

于 2012-03-14T19:40:24.227 回答
0

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

TextInput在这里您指定小部件EmailField

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

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

现在这些将作为属性出现在这个小部件的渲染 html 中。因此,为字段渲染的 htmlemail如下所示:

<input id="id_email" type="text" class="required" maxlength="75" name="email" />
于 2013-03-28T09:05:03.917 回答