2011-02-09 3 views
0

첫 번째 양식이 작성되어 당신의 example here양식 집합에서 유효하고 기입 된 양식을 확인하는 방법은 무엇입니까?

>>> for form in formset: 
...  print form.as_table() 
<tr><th><label for="id_form-0-title">Title:</label></th><td><input type="text" name="form-0-title" value="Django is now open source" id="id_form-0-title" /></td></tr> 
<tr><th><label for="id_form-0-pub_date">Pub date:</label></th><td><input type="text" name="form-0-pub_date" value="2008-05-12" id="id_form-0-pub_date" /></td></tr> 
<tr><th><label for="id_form-1-title">Title:</label></th><td><input type="text" name="form-1-title" id="id_form-1-title" /></td></tr> 
<tr><th><label for="id_form-1-pub_date">Pub date:</label></th><td><input type="text" name="form-1-pub_date" id="id_form-1-pub_date" /></td></tr> 
<tr><th><label for="id_form-2-title">Title:</label></th><td><input type="text" name="form-2-title" id="id_form-2-title" /></td></tr> 
<tr><th><label for="id_form-2-pub_date">Pub date:</label></th><td><input type="text" name="form-2-pub_date" id="id_form-2-pub_date" /></td></tr> 

를 보면 당신은 볼, 2 (2)는 없습니다. 그 채워진 양식을 숨겨진 것으로 렌더링하고 나머지 2는 표시로하고 싶습니다. 이 둘을 어떻게 구별합니까?

나는 form.is_valid이 formset의 빈 양식에 대해 true를 반환한다고 생각합니까?

답변

0

기존 모델을 숨기려면 왜 왜 렌더링해야합니까?

formset = MyFormset(queryset=MyModel.objects.none()) 
+0

그러면 제출 될 것입니다. – mpen

+0

네,하지만 사용자에게 표시되지 않는 이유는 무엇입니까? – SmileyChris

+0

숨겨진 필드는 항상 웹에서 사용됩니다. JavaScript로 채워지거나 다음 페이지로 데이터를 전파하는 데 사용할 수 있습니다. * 전체 양식을 완료 할 때까지 데이터를 유지하고 사실 * 표시됩니다. 양식 필드가 아닙니다. 텍스트로 렌더링되며 편집 할 수없고 삭제 만 할 수 있습니다. – mpen

0

신경 끄시 고 ... 솔루션은 실제로 매우 간단하다 : 다음과 같은

뭔가 당신에게 기존의 객체를 제외한 빈 형태의 집합을 제공 할 것입니다.

{{vehicle_formset.management_form}} 
{% if vehicle_formset.initial_forms %} 
    {% for vehicle_form in vehicle_formset.initial_forms %} 
      {% for field in vehicle_form %}{{ field.as_hidden}}{% endfor %} 
    {% endfor %} 
{% endif %} 
{% for vehicle_form in vehicle_formset.extra_forms %} 
     <!-- render non-hidden forms --> 
{% endfor %} 
관련 문제