python - ¿Inhabilitar autocompletar en campo de texto en Django?
django autocomplete light install (3)
¿Alguien sabe cómo puede desactivar el autocompletado en un campo de texto en Django?
Por ejemplo, un formulario que genero a partir de mi modelo tiene un campo de entrada para un número de tarjeta de crédito. Es una mala práctica dejar el autocompletado. Al hacer el formulario a mano, agregaría una declaración de autocompletar = "apagado", pero ¿cómo lo haces en Django y aún conservas la validación del formulario?
Agregue autocomplete = "off" a la etiqueta del formulario, para que no tenga que cambiar la instancia de django.form.
<form action="." method="post" autocomplete="off"> {{ form }} </form>
Si está definiendo sus propios formularios, puede agregar atributos a sus campos en el formulario.
class CommentForm(forms.Form):
name = forms.CharField(widget=forms.TextInput(attrs={
''autocomplete'':''off''
}))
Si está utilizando formas de modelo, no tendrá el lujo de definir atributos de campo en el formulario. Sin embargo, puede usar __init__
para agregar atributos requeridos.
class CommentForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(CommentForm, self).__init__(*args, **kwargs)
self.fields[''name''].widget.attrs.update({
''autocomplete'': ''off''
})
También puedes agregar atributos desde Meta
class CommentForm(forms.ModelForm):
class Meta:
widgets = {
''name'': TextInput(attrs={''autocomplete'': ''off''}),
}
En su forma, especifique el widget que desea usar para el campo y agregue un diccionario attrs
en ese widget. Por ejemplo (directamente de la documentación django ):
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''}))
Simplemente agregue ''autocomplete''=''off''
a la regla dtr attrs.