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>
Ahora suponga que quiero agregar un autocomplete="off"
atributo al elemento de entrada que se representa, ¿cómo lo haría? ¿O onclick="xyz()"
o class="my-special-css-class"
?
Perdón por los anuncios, pero recientemente lancé una aplicación ( https://github.com/kmike/django-widget-tweaks ) que hace que estas tareas sean aún menos dolorosas para que los diseñadores puedan hacerlo sin tocar el código Python:
o alternativamente,
fuente
Si está utilizando "ModelForm":
fuente
Si está utilizando
ModelForm
, además de la posibilidad de usar__init__
como @Artificioo proporcionado en su respuesta, hay unwidgets
diccionario en Meta para el caso:Documentación relevante
fuente
No quería usar una aplicación completa para esto. En su lugar, encontré el siguiente código aquí https://blog.joeymasip.com/how-to-add-attributes-to-form-widgets-in-django-templates/
usa la etiqueta en el archivo html
fuente
He pasado bastantes días intentando crear plantillas de formulario reutilizables para crear y actualizar modelos en formularios de Django. Tenga en cuenta que estoy usando ModelForm para cambiar o crear un objeto. También estoy usando bootstrap para diseñar mis formularios. Usé django_form_tweaks para algunos formularios en el pasado, pero necesitaba algo de personalización sin mucha dependencia de la plantilla. Como ya tengo jQuery en mi proyecto, decidí aprovechar sus propiedades para diseñar mis formularios. Aquí está el código y puede funcionar con cualquier formulario.
Views.py
Nota de código HTML : estoy usando bootstrap4 modal para eliminar la molestia de crear muchas vistas. Tal vez sea mejor usar CreateView o UpdateView genérico. Enlace Bootstrap y jqQery
Código Javascript recuerde cargar esto en
$(document).ready(function() { /* ... */});
función.fuente