Django: Comment puis-je ajouter le code html arbitraire des attributs de champs de saisie dans un formulaire?
J'ai un champ de saisie qui est rendu avec un modèle comme suit:
<div class="field">
{{ form.city }}
</div>
Qui est traduit comme:
<div class="field">
<input id="id_city" type="text" name="city" maxlength="100" />
</div>
Maintenant, supposons que je veux ajouter un autocomplete="off"
attribut de l'élément de saisie est rendue, comment dois-je procéder? Ou onclick="xyz()"
ou class="my-special-css-class"
?
InformationsquelleAutor User | 2010-05-25
Vous devez vous connecter pour publier un commentaire.
Consultez cette page
Désolé pour la publicité, mais j'ai récemment publié un app (https://github.com/kmike/django-widget-tweaks) qui rend ces tâches même moins douloureux si les concepteurs peuvent le faire sans toucher le code python:
ou, alternativement,
Si vous utilisez "ModelForm":
Si vous utilisez
ModelForm
, en dehors de la possibilité d'utiliser__init__
comme @Artificioo fournis dans sa réponse, il y a unwidgets
dictionnaire dans les Méta-pour cette question:La documentation pertinente
Je ne veux pas utiliser tout un app 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/
l'utilisation de la balise dans le fichier html
Que j'ai rencontré le même problème et a pu le résoudre comme suit:
J'ai suivi le code de ce lien et ajouté un peu de modification
https://blog.joeymasip.com/how-to-add-attributes-to-form-widgets-in-django-templates/
Estival :
L'étape 1:
créez un fichier appelé add_attr.py et le placer dans templatetags dossier à l'intérieur de votre application
L'étape 2:
ajoutez le code suivant à add_attr.py
Étape 3: à l'Aide de la balise comme suit :
charge de la balise:
exemple:
devient