widgets hiddeninput form choices django django-templates django-forms django-widget html

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}), }

Documentación relevante


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'' })


Ver esta página

city = forms.CharField(widget=forms.TextInput(attrs={''autocomplete'':''off''}))