2015-05-28 59 views
0

我在格式化Django Formset時遇到了問題,我不知道最好的方法是......希望得到您有經驗的反饋。Django Forms Manual格式

我有一個formset(SystemConfigurationFormset),其具有形式(SystemConfiguration)以下兩個領域:

  1. memory_size - IntegerField
  2. cpu_cores - IntegerField

我讀過了在Formset上有相當一部分,如果我有正確的方法,我仍然有點困惑。基本上,我想在同一個網頁上重複同樣的表單3次。點擊提交應該從三個表單中唯一地提交所有數據(使用一些前綴來標識每個表單的形式)。

事情是,我需要爲每個表單單獨標題。例如:

Form1的名稱窗體2名

- 形式-1-這裏 - - 形式-2-這裏 -

(表格相鄰)

如何我會採用這種方法嗎?現在,這是我討厭的代碼,我敢肯定,你可以說是不正確的:

 <div class="box-content"> 
     <div class="row-fluid"> 
      <form class="form-horizontal" action="" method="POST"> {% csrf_token %} 
       <div class="span3" onTablet="span6" onDesktop="span3"> 
        {{ formset.management_form }} 
        <h2><b>Application VM</b></h2> 
        <fieldset> 
         {{ formset.form.as_table }} 
        </fieldset> 
       </div> 
       <div class="span3" onTablet="span6" onDesktop="span3"> 
        <h2><b>Router VM</b></h2> 
        <fieldset> 
         {{ formset.form.as_table }} 
        </fieldset> 
       </div> 
       <div class="span3" onTablet="span6" onDesktop="span3"> 
        <h2><b>System VM</b></h2> 
        <fieldset> 
         {{ formset.form.as_table }} 
        </fieldset> 
       </div> 
     </div> 
     <div class="form-actions"> 
      <!-- <button type="submit" class="btn btn-primary">Save changes</button> --> 
      <button type="submit" class="btn btn-primary">Save</button> 
      <button type="reset" class="btn">Reset</button> 
     </div> 
     </form> 

您的幫助非常感謝!

回答

1

下面是一個解決方案,對錶單標題進行一些黑客入侵。如果你想擺脫這一點,我會建議在你的視圖中使用python的zip函數來組合formset和標題列表。在這個answer中找到了這樣一個例子。

{{ formset.management_form }} 
{% for form in formset %} 
    <div class="span3" onTablet="span6" onDesktop="span3"> 
    <h2><b> 
     {% if forloop.counter == 1 %} 
     Application VM 
     {% elif forloop.counter == 2 %} 
     Router VM 
     {% elif forloop.counter == 3 %} 
     System VM 
     {% endif %} 
    </b></h2> 
    <fieldset> 
     {{ form.as_table }} 
    </fieldset> 
    </div> 
{% endfor %} 
+0

太棒了,謝謝! –