Eu tenho um campo de entrada que é renderizado com um modelo assim:
<div class="field">
{{ form.city }}
</div>
Que é processado como:
<div class="field">
<input id="id_city" type="text" name="city" maxlength="100" />
</div>
Agora, suponha que eu queira adicionar um autocomplete="off"
atributo ao elemento de entrada que é renderizado, como eu faria isso? Ou onclick="xyz()"
ou class="my-special-css-class"
?
django
django-templates
django-forms
django-widget
html
Do utilizador
fonte
fonte
Desculpe pelo anúncio, mas recentemente lancei um aplicativo ( https://github.com/kmike/django-widget-tweaks ) que torna essas tarefas ainda menos dolorosas para que os designers possam fazer isso sem mexer no código python:
ou alternativamente,
fonte
Se você estiver usando "ModelForm":
fonte
Se estiver usando
ModelForm
, além da possibilidade de usar__init__
como @Artificioo fornecida em sua resposta, existe umwidgets
dicionário em Meta para esse assunto:Documentação relevante
fonte
Eu não queria usar um aplicativo inteiro para isso. Em vez disso, encontrei o seguinte código aqui https://blog.joeymasip.com/how-to-add-attributes-to-form-widgets-in-django-templates/
use a tag no arquivo html
fonte
Passei alguns dias tentando criar modelos de formulário reutilizáveis para criar e atualizar modelos em formulários Django. Observe que estou usando ModelForm para alterar ou criar um objeto. Também estou usando bootstrap para estilizar meus formulários. Eu usei django_form_tweaks para alguns formulários no passado, mas precisava de alguma personalização sem muita dependência de template. Como já tenho jQuery no meu projeto, decidi aproveitar suas propriedades para estilizar meus formulários. Aqui está o código e pode funcionar com qualquer formulário.
Views.py
Código HTML Nota: Estou usando o modal bootstrap4 para eliminar o incômodo de criar muitas visualizações. Talvez seja melhor usar CreateView ou UpdateView genérico. Link Bootstrap e jqQery
Código Javascript, lembre-se de carregar isso na
$(document).ready(function() { /* ... */});
função.fonte