如果你看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表示为可见。我如何区分这两者?
我认为form.is_valid
对于formset中的空白表单会返回true,不是吗?
答案 0 :(得分:0)
如果要将现有模型隐藏起来,为什么还要渲染现有模型呢?
以下内容只会为您提供一组空表单,不包括任何现有对象:
formset = MyFormset(queryset=MyModel.objects.none())
答案 1 :(得分: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 %}