105 votes

Django: Comment puis-je ajouter des attributs HTML arbitraires aux champs de saisie d'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 à l'élément d'entrée qui est rendu, comment dois-je procéder? Ou onclick="xyz()" ou class="mon-special-classe css"?

133voto

Galen Points 20535

Consultez cette page

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

120voto

Mikhail Korobov Points 6225

Désolé pour la publicité, mais j'ai récemment publié un app ( http://pypi.python.org/pypi/django-widget-tweaks qui fait que ces tâches même moins douloureux si les concepteurs peuvent le faire sans toucher le code python:

{% load widget_tweaks %}
...
<div class="field">
   {{ form.city|attr:"autocomplete:off"|add_class:"my_css_class" }}
</div>

ou, alternativement,

{% load widget_tweaks %}
...
<div class="field">
   {% render_field form.city autocomplete="off" class+="my_css_class" %}
</div>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X