2012-12-19 32 views
0

我有一個formset如下:爲什麼這個django formset沒有被提交?

EduFormSet = formset_factory(forms.CandidateDegreeForm, can_delete=True) 
edu_formset = EduFormSet(prefix='candidate_degree') 

在模板中我做了以下內容:

{% if edu_formset %} 
{% for form in edu_formset %} 
    <div class="formset-form" style="visibility: visible;"> 
     <form id="{{ form.prefix }}" method="POST" action="/degree/add/"> 
      <h4>Some Heading Here</h4> 
      {% csrf_token %} 
      {% for field in form %} 
       {% include "form_field.html" %} 
      {% endfor %} 
     </form> 
     <script type="text/javascript"> 
      jQuery(document).ready (function(){ 
       jQuery('{{ form.prefix }}').validationEngine(); 
      }); 
     </script> 
     <div class="clearfix"></div> 
    </div> 
{% endfor %} 
{{ edu_formset.management_form }} 
    <div class="button-container right"> 
     <input class="button" type="submit" value="submit" /> 
    </div> 
{% endif %} 

我不知道爲什麼,但沒有真正發生時,我點擊提交按鈕。

+1

任何可用於python的stacktrace?你嘗試刪除validationEngine並讓django進行表單驗證嗎?是的你應該。 –

+0

@SamueleMattiuzzo沒有堆棧跟蹤,由於某種原因,提交函數根本沒有被觸發。我也嘗試刪除驗證引擎的東西,但它沒有幫助。 – Amyth

回答

1

您的提交按鈕不在表單內,所以該操作不會被點擊觸發!

下面是如何the docs顯示您呈現表單集:

<form method="post" action=""> 
    <!-- Notice how the formset (below) and thus its submit button 
     is INSIDE the form (above) --> 
    {{ formset.management_form }} 
    <table> 
     {% for form in formset %} 
     {{ form }} 
     {% endfor %} 
    </table> 
</form> 

您嘗試創建與form.prefixid多種形式。這可以工作,但每個表單都必須使用自己的提交按鈕進行呈現。表單集旨在將多個表單合併爲一個表單,並通過所述前綴保證值名稱的唯一性。他們將被封閉在一個單一的表格,並分享任何提交觸發器。

+0

我不想提交一份表格。我想提交表單中的所有表單。 – Amyth

+1

我不知道有關formset,只是檢查了文檔。我發現他們將自己的表單放在一個HTML表單中,這會導致我堅持我的回答... –

+0

這意味着我應該擁有表單元素中的所有表單嗎? – Amyth

相關問題