views:

288

answers:

2

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?

+4  A: 

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.

BJ Homer
Thanks! I found this 1 minute before your answer...isn't that how it always goes?!
tau-neutrino
A: 

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>

jjlorenzo