Disable autocomplete on textfield in Django?
If you are defining your own forms, you can add attributes to your fields in the form.
class CommentForm(forms.Form):
name = forms.CharField(widget=forms.TextInput(attrs={
'autocomplete':'off'
}))
If you are using modelforms, you won't have the luxury of defining field attributes in the form. However, you can use __init__
to add required attributes.
class CommentForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(CommentForm, self).__init__(*args, **kwargs)
self.fields['name'].widget.attrs.update({
'autocomplete': 'off'
})
You can also add attributes from Meta
class CommentForm(forms.ModelForm):
class Meta:
widgets = {
'name': TextInput(attrs={'autocomplete': 'off'}),
}
In your form, specify the widget you want to use for the field, and add an attrs
dictionary on that widget. For example (straight from the 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'}))
Just add 'autocomplete': 'off'
to the attrs dict.
Add the autocomplete="off" to the form tag, so you don't have to change the django.form instance.
<form action="." method="post" autocomplete="off">
{{ form }}
</form>