をレンダリングしながら、私はDjangoのフォームの一部のフィールドのための余分に関する情報を追加し、いくつかの余分なHTMLタグ フォームフィールド内の余分な情報を追加し、Djangoのテンプレート
私はジャンゴきを追加するためのテンプレートでそれを使用したい、それを使用以下のような形式:class MyForm(forms.Form):
integer = forms.IntegerField(
help_text='Please enter your favorite integer number',
label='Favorite integer',
widget=forms.TextInput(attrs={'class':'input-xlarge'}))
decimal = forms.DecimalField(
min_value=Decimal('0.0001'),
decimal_places=4,
help_text='Please enter your favorite decimal number',
label='Favorite decimal',
widget=forms.TextInput(attrs={'class':'input-xlarge'}))
==> here I would like to say: decimal will have a new property
は、私は、各フィールドの上にループを使用して、テンプレートにMyFormをレンダリングしています:
{% for item in form.visible_fields %}
==> here I would like to test if item has that property to add some html tags
{{ item }}
{% endfor %}
私はトン外のプロパティ情報を使用したいと私は、ウィジェットのattrsには使用できません。彼は入力タグをレンダリングしました。
私はcreate a custom fieldを使用する必要がありますか?私が使用するすべてのフィールドのカスタムレンダラーを作成するか、私が見逃した簡単な解決策がありますか?
編集:これまでのところ私のソリューションです:(簡易版) メインテンプレート:form_field.htmlで
<form action="/somewhere/" method="post">{% csrf_token %}
{% include 'form_field.html' with item=form.integer icon="icon-home" %}
{% include 'form_field.html' with item=form.decimal icon="icon-list-alt" %}
{% include 'form_field.html' with item=form.another icon="icon-signal" %}
{% include 'form_field.html' with item=form.again icon="icon-time" %}
...
、私はTwitter's Bootstrap input-prepend divを使用してフィールドをレンダリング:
<div class="control-group">
<label class="control-label" for="{{ item.name }}">{{ item.label }}</label>
<div class="controls">
{% if icon %}
<div class="input-prepend">
<span class="add-on"><i class="{{ icon }}"></i></span>
{% endif %}
{{ item }}
<p class="help-block">{{ item.help_text }}</p>
{% if icon %}
</div>
{% endif %}
</div>
</div>
すべて私は、エラーを起こしやすいすべてのフィールドを列挙するのではなく、ループを使用してメインテンプレートを単純化することを望んでいます。だから私は、テンプレートからフォーム定義にその 'icon-home'プロパティを移動して、すべての属性を同じ場所(特定のウィジェットattrsはすでにフォームにあります)に配置したいと考えています。 理想的には、メインテンプレートで私が持っているでしょう:
{% for item in form.visible_fields %}
{% include 'form_field.html' %}
{% endfor %}
を、私はそれはDjangoの原則(サイトの外観はない形で、テンプレートにする必要があります)の誤解とみなすことができる理解...
達成しようとしていることを詳しく説明できますか? – tamakisquare
Paulのレスポンスに対するコメントにいくつかの精度を追加しました。はっきりしていますか? – Labarbiche
次回は、質問に追加情報を追加するときに、説明のように、コメントではなく元の投稿に追加してください。そうすれば、あなたはすべての情報を1か所で見ることができます。もちろん、コメントには書かれていない豊富な書式設定機能を使って情報をより良く提示することができます。 – tamakisquare