hiddeninput - django text input
Django: ¿Cómo agrego atributos html arbitrarios para ingresar campos en un formulario? (4)
Lo siento por la publicidad, pero recientemente lancé una aplicación ( https://github.com/kmike/django-widget-tweaks ) que hace que estas tareas sean menos dolorosas para que los diseñadores puedan hacer eso sin tocar el código de Python:
{% load widget_tweaks %}
...
<div class="field">
{{ form.city|attr:"autocomplete:off"|add_class:"my_css_class" }}
</div>
o alternativamente,
{% load widget_tweaks %}
...
<div class="field">
{% render_field form.city autocomplete="off" class+="my_css_class" %}
</div>
Tengo un campo de entrada que se representa con una plantilla como esta:
<div class="field">
{{ form.city }}
</div>
Que se representa como:
<div class="field">
<input id="id_city" type="text" name="city" maxlength="100" />
</div>
Supongamos ahora que quiero agregar un atributo autocomplete="off"
al elemento de entrada que se representa, ¿cómo lo haría? ¿O onclick="xyz()"
o class="my-special-css-class"
?
Si está usando ModelForm
, además de la posibilidad de usar __init__
como @Artificioo en su respuesta, hay un diccionario de widgets
en Meta para ese asunto:
class AuthorForm(ModelForm):
class Meta:
model = Author
fields = (''name'', ''title'', ''birth_date'')
widgets = {
''name'': Textarea(attrs={''cols'': 80, ''rows'': 20}),
}
Si está utilizando "ModelForm":
class YourModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(YourModelForm, self).__init__(*args, **kwargs)
self.fields[''city''].widget.attrs.update({
''autocomplete'': ''off''
})
city = forms.CharField(widget=forms.TextInput(attrs={''autocomplete'':''off''}))