J'ai un champ d'entrée qui est rendu avec un modèle comme ceci:
<div class="field">
{{ form.city }}
</div>
Qui est rendu comme:
<div class="field">
<input id="id_city" type="text" name="city" maxlength="100" />
</div>
Supposons maintenant que je veuille ajouter un autocomplete="off"
attribut à l'élément d'entrée qui est rendu, comment ferais-je cela? Ou onclick="xyz()"
ou class="my-special-css-class"
?
django
django-templates
django-forms
django-widget
html
Utilisateur
la source
la source
Désolé pour la publicité, mais j'ai récemment publié une application ( https://github.com/kmike/django-widget-tweaks ) qui rend ces tâches encore moins pénibles afin que les concepteurs puissent le faire sans toucher au code Python:
Ou bien,
la source
Si vous utilisez "ModelForm":
la source
Si vous utilisez
ModelForm
, outre la possibilité d'utiliser__init__
comme @Artificioo fournie dans sa réponse, il existe unwidgets
dictionnaire dans Meta d'ailleurs:Documentation pertinente
la source
Je ne voulais pas utiliser une application entière pour cette chose. Au lieu de cela, j'ai trouvé le code suivant ici https://blog.joeymasip.com/how-to-add-attributes-to-form-widgets-in-django-templates/
utilisez la balise dans le fichier html
la source
J'ai passé plusieurs jours à essayer de créer des modèles de formulaires réutilisables pour créer et mettre à jour des modèles dans les formulaires Django. Notez que j'utilise ModelForm pour modifier ou créer un objet. J'utilise aussi bootstrap pour styliser mes formulaires. J'ai utilisé django_form_tweaks pour certains formulaires dans le passé, mais j'avais besoin d'une certaine personnalisation sans beaucoup de dépendance de modèle. Comme j'ai déjà jQuery dans mon projet, j'ai décidé d'exploiter ses propriétés pour styliser mes formulaires. Voici le code, et peut fonctionner avec n'importe quel formulaire.
Views.py
Remarque sur le code HTML : J'utilise le modal bootstrap4 pour supprimer les tracas liés à la création de nombreuses vues. Il est peut-être préférable d'utiliser CreateView ou UpdateView générique. Lier Bootstrap et jqQery
Code Javascript n'oubliez pas de charger ceci en
$(document).ready(function() { /* ... */});
fonction.la source