django-registration 中的 Django 字段

发布于 2024-11-07 03:38:49 字数 415 浏览 0 评论 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 正在做什么。对这段代码的任何解释都会很棒。谢谢。

I am setting up django registration, and I came across this piece of code in the RegistrationForm --

attrs_dict = { 'class': 'required' }

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

What does the part (attrs=dict(attrs_dict, maxlength=75)) mean/do? I know what the maxlength part does but was unclear what the creation of a dictionary is doing, and what the attrs_dict is doing. Any explanation of this piece of code would be great. Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

苏佲洛 2024-11-14 03:38:49

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

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

So当电子邮件字段呈现为 html 元素时,2 个属性(class 和 maxlength)将添加到标签中。

A bit of test showed that dict(attr_dict, maxlenght=75) equals to

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

So when the email filed is rendered to an html element, 2 attributes, class and maxlength will be added to the label.

烟酒忠诚 2024-11-14 03:38:49

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

It is creating a dictionary of attributes which will be required to add validation kind of things in finally rendered form, in this way we dont need to do anything in the template code to add validation and security.

烟雨扶苏 2024-11-14 03:38:49

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

在这里,您在 EmailField 上指定小部件 TextInput

(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" />

Each form field in django uses a widget. You can either specify it during field creation or a default widget is used.

Here you are specifying widget TextInput on EmailField

(attrs=dict(attrs_dict, maxlength=75)) becomes:

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

Now these will be present as attributes in the rendered html for this widget. So, rendered html for field email would look like:

<input id="id_email" type="text" class="required" maxlength="75" name="email" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文