手动渲染 Django Formset
Render Django Formset Manually
当我使用循环渲染我的表单集时,一切正常。
当我尝试通过分别访问每个字段(用于前端目的)手动呈现它时,表单正在呈现但提交失败。每个字段都是相同的,所以我想在使用我不知道的表单集时创建了一个隐藏字段。
这里是我的工作代码的简化示例
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ formset.management_form }}
{% for p in formset %}
{{p.as_p}}
{% endfor %}
</form>
以及不起作用的简化示例
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ formset.management_form }}
{% for p in formset %}
<span class="form-sub-label-container " style="vertical-align:top">
{{p.field1}}
<label class="form-sub-label" for="input_12_city" id="sublabel_12_city" style="min-height:13px"></label>
</span>
< span class="another_span">
{{p.field2}}
</span>
## etc....
{% endfor %}
</form>
有什么想法吗?
谢谢。
如果你想手动渲染每个formset表单域,你必须添加Django默认的隐藏域。
<form method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for p in formset %}
{{ p.id }} # if formset is ModelFormSet
{{ p.ORDER }} # if can_order=True
{{ p.DELETE }} # if can_delete=True
... # your custom fields
{% endfor %}
</form>
当我使用循环渲染我的表单集时,一切正常。
当我尝试通过分别访问每个字段(用于前端目的)手动呈现它时,表单正在呈现但提交失败。每个字段都是相同的,所以我想在使用我不知道的表单集时创建了一个隐藏字段。
这里是我的工作代码的简化示例
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ formset.management_form }}
{% for p in formset %}
{{p.as_p}}
{% endfor %}
</form>
以及不起作用的简化示例
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ formset.management_form }}
{% for p in formset %}
<span class="form-sub-label-container " style="vertical-align:top">
{{p.field1}}
<label class="form-sub-label" for="input_12_city" id="sublabel_12_city" style="min-height:13px"></label>
</span>
< span class="another_span">
{{p.field2}}
</span>
## etc....
{% endfor %}
</form>
有什么想法吗?
谢谢。
如果你想手动渲染每个formset表单域,你必须添加Django默认的隐藏域。
<form method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for p in formset %}
{{ p.id }} # if formset is ModelFormSet
{{ p.ORDER }} # if can_order=True
{{ p.DELETE }} # if can_delete=True
... # your custom fields
{% endfor %}
</form>