django-templates input größe - Django: Wie füge ich willkürlichen HTML-Attributen zu Eingabefeldern in einem Formular hinzu?
2
Answers
Sorry für Werbung, aber ich habe vor kurzem eine App veröffentlicht ( https://github.com/kmike/django-widget-tweaks ), die solche Aufgaben noch weniger schmerzhaft macht, so dass Designer das tun können, ohne Python-Code zu berühren:
{% load widget_tweaks %}
...
<div class="field">
{{ form.city|attr:"autocomplete:off"|add_class:"my_css_class" }}
</div>
oder alternativ,
{% load widget_tweaks %}
...
<div class="field">
{% render_field form.city autocomplete="off" class+="my_css_class" %}
</div>
anpassen länge begrenzen
Ich habe ein Eingabefeld, das wie folgt mit einer Vorlage gerendert wird:
<div class="field">
{{ form.city }}
</div>
Was wird wiedergegeben als:
<div class="field">
<input id="id_city" type="text" name="city" maxlength="100" />
</div>
Angenommen, ich möchte dem Eingabeelement, das gerendert wird, ein autocomplete="off"
-Attribut hinzufügen, wie würde ich das tun? Oder onclick="xyz()"
oder class="my-special-css-class"
?
85 votes
django
Wenn Sie ModelForm
, gibt es neben der Möglichkeit, __init__
als @Artificioo in seiner Antwort zu verwenden, auch ein Widgetwörterbuch in Meta:
class AuthorForm(ModelForm):
class Meta:
model = Author
fields = ('name', 'title', 'birth_date')
widgets = {
'name': Textarea(attrs={'cols': 80, 'rows': 20}),
}
django1
83