2011-12-05 6 views
2

Djangoフォームにヘッダーを挿入したいと思います。私は、次のフィールドがあります。Djangoフォームにヘッダーを挿入

Name 
Price 

Optional - Size 
Optional - Color 

しかし、その代わりに「オプション - 」を持つのすべてのオプションの項目に、私は、ヘッダーをしたいと思いますが、その形式は次のようになります。

Name 
Example 

Optional fields: 
Size 
Color 

(これは、擬似コードですが、私のことを説明するのは簡単です)

私は個々のフォームフィールドをHTMLでレンダリングすることができますが、{{form.as_p}}を使用したいと思います。追加する新しいフィールドごとにマークアップを変更します)。フォームのDjangoプロパティを定義する方法はありますか?form.as_pを保持して、この追加ヘッダー(およびフィールドの他のセクションのヘッダー)を追加できますか?

from uni_form.helper import FormHelper 
from uni_form.layout import Layout, Fieldset 

class ExampleForm(forms.Form): 
    [...] 
    def __init__(self, *args, **kwargs): 
     self.helper = FormHelper() 
     self.helper.layout = Layout(
      Fieldset(
       'name', 
       'price' 
      ), 
      Fieldset(
       'Optional', 
       'size', 
       'color' 
      ), 
      ButtonHolder(
       Submit('submit', 'Submit', css_class='button white') 
      ) 
     ) 
     return super(ExampleForm, self).__init__(*args, **kwargs) 
+0

は別のオプションについては、Djangoに付属のフォームとフォームフィールドの現在の動作でhttp://stackoverflow.com/a/24209246/362702 –

答えて

2

まあ、良いオプションの欠如のために、I:

は、私はDjangoは、このような機能はありません持っていると思うが、これは小さな変化でuni-form documentationからの例です:) django-uni-formているあなたに

2

ありがとうございましたフォーム全体の代わりにフォームの個々のフィールドをレンダリングすることでこの問題を解決しました。

は、その後、私は唯一のしなければならない。

<div class="fieldWrapper"> 
    (...Field 1...) 
</div> 

<h1>My Own Header</h1> 

<div class="fieldWrapper"> 
    (...Field 2...) 
</div> 
+0

で私の答えを参照してください、それはカスタマイズするフォームオブジェクトを設定することは事実上不可能ですあなたがそれを必要とするようにレンダリングを行います。 django-uni-form、otohは、即座にそれを可能にします。 –

1

私はjQueryを使ってそれを作りました。 非常に簡単です。

$('#id_size').parent().parent().before('<h1>optional</h1>'); 
関連する問題