Does anyone know how you can turn off autocompletion on a textfield in Django?
For example, a form that I generate from my model has an input field for a credit card number. It is bad practice to leave autocompletion on. When making the form by hand, I'd add a autocomplete="off" statement, but how do you do it in Django and still retain the form validation?
Just add 'autocomplete': 'off' to the attrs dict.
A widget is Django's representation of an HTML input element. The widget handles the rendering of the HTML, and the extraction of data from a GET/POST dictionary that corresponds to the widget. The HTML generated by the built-in widgets uses HTML5 syntax, targeting <!
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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With