我通过instructions将django动态表单集设置到我的项目和我的特定内联表单集
{{Edit}}
目标是提供一种在表单集中添加和删除单个表单的简单方法
{{End edit}}
除了一个包含外键的表单集之外,所有的表单集似乎都可以工作。当我“添加另一个”时,它会复制它下面的字段
表格集:
<h3>Services</h3>
<div class="row">
{{ services_formset.management_form }}
{% for formserve in services_formset %}
{{ formserve.non_field_errors }}
<div class="container" id="services_formset">
<div class="row" name="service_form">
{% for hidden in formserve.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in formserve %}
{% if field.name != 'index' and field.name != 'invoice'%}
<div class="col-sm">
{{ field.errors }}
{{ field|as_crispy_field }}
{% if field.help_text %}
<p class="help">{{ field.help_text|safe }}</p>
{% endif %}
</div>
{% endif %}
{% endfor %}
</div>
</div>
javascript:
<script type="text/javascript">
$(function() {
$('#services_formset').formset({
prefix: '{{ formserve.prefix }}'
});
})
</script>
编辑:
我使用inlineformset_factory
创建它:
ServicesFormset = inlineformset_factory(TransactionsTable, TransSpTable, fields=('service','fee','qty','taxrate','tax','sub'), extra=1, widgets=services_widgets, can_delete=True)
然后,我使用一个函数来实例化它,该函数检查它是创建视图还是详细视图,以及是否是帖子:
context['services_formset'] = get_dynamic_formset(self, ServicesFormset)
def get_dynamic_formset(view, FormSetClass):
if view.object:
if view.request.POST:
dynamic_formset = FormSetClass(view.request.POST, instance=view.object)
else:
dynamic_formset = FormSetClass(instance=view.object)
else:
if view.request.POST:
dynamic_formset = FormSetClass(view.request.POST)
else:
dynamic_formset = FormSetClass()
return dynamic_formset
目前没有回答
相关问题 更多 >
编程相关推荐