如何正确地将HTML属性添加到Django表单小部件

时间:2014-11-13 00:17:53

标签: django django-forms

我正在尝试在我的Django项目中使用Parsley.js进行验证。我目前正处于尝试将必要的Parsley属性添加到表单字段的步骤。希望这是正确的,但有人告诉我,我需要将属性传递给现有表单字段中的小部件。

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

我的问题是如何正确地将属性传递给表单小部件,以便我可以使用parsley.js验证此表单字段?我在下面捅了一下,但我知道这是不正确的。

email = forms.EmailField(widget=forms.TextInput(attrs=dict(attrs_dict,
                                                                   maxlength=75, data-required="true", data-trigger="keyup")), label=_("Email"))

2 个答案:

答案 0 :(得分:0)

覆盖表单类中的__init__函数可能是最佳选择......

class YourClass(ModelForm):
    def __init__(self, *args, **kwargs):
        self.fields['yourfield'].widget.attrs.update({'yourattribute': 'yourattributevalue'})

答案 1 :(得分:0)

您应该能够将属性直接传递给字段声明,如下所示:

email = forms.EmailField(widget=forms.TextInput(attrs={'data-trigger':'keyup', 'data-required' : 'true'}), maxlength=75, label=_("Email"))

有关详细信息,请参阅django表单widget attrs文档:https://docs.djangoproject.com/en/dev/ref/forms/widgets/#django.forms.Widget.attrs