在Django的textfield上禁用自动完成功能?

2024-04-24 22:49:59 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
3条回答

如果要定义自己的表单,则可以向表单中的字段添加属性。

class CommentForm(forms.Form):
    name = forms.CharField(widget=forms.TextInput(attrs={
        'autocomplete':'off'
    }))

如果您使用的是modelforms,那么您将无法在表单中定义字段属性。但是,您可以使用__init__添加所需的属性。

class CommentForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(CommentForm, self).__init__(*args, **kwargs)
        self.fields['name'].widget.attrs.update({
            'autocomplete': 'off'
        })

您还可以从Meta添加属性

class CommentForm(forms.ModelForm):
    class Meta:
        widgets = {
            'name': TextInput(attrs={'autocomplete': 'off'}),
        }

将autocomplete=“off”添加到表单标记中,这样就不必更改django.form实例。

<form action="." method="post" autocomplete="off"> {{ form }} </form>

在表单中,指定要用于字段的小部件,并在该小部件上添加attrs字典。例如(直接从django documentation):

class CommentForm(forms.Form):
    name = forms.CharField(
                widget=forms.TextInput(attrs={'class':'special'}))
    url = forms.URLField()
    comment = forms.CharField(
               widget=forms.TextInput(attrs={'size':'40'}))

只需将'autocomplete'='off'添加到attrs dict

相关问题 更多 >