我正在遵循this教程,该教程展示了如何在Django中使用表单集。本教程使用django-dynamic-formset JQuery插件,该插件可以像在Django admin中一样编辑表单集。
假设我有以下形式:
<form enctype="multipart/form-data" method="post">
{% csrf_token %}
{% for place_form in places_formset %}
<div class="place_formset">
<div class="required field">
<label>{{ place_form.name.label }}</label>
<div class="ui icon input">
{{ place_form.name }}
</div>
</div>
</div>
{% endfor %}
{{ places_formset.management_form }}
<br>
<button type="submit">Save changes</button>当我呈现表单时,我得到"Add item“链接,它允许我向表单集中添加另一个表单。(这也意味着js和JQuery已经加载并正常工作),但我看不到应该删除每个表单实例的链接。
Here有关于从内联表单集中删除项的说明,但没有提到常规表单集。
到目前为止,我所做的是:
1.我尝试包含以下内容:
{{ place_form.DELETE }}进入表单,以为django-dynamic-formset会用"remove“链接替换所有呈现的复选框,但这并没有发生。
2.我也尝试过用显式的can_delete来渲染set类,但是没有解决问题:
PlaceFormSet = formset_factory(PlaceForm, can_delete=True)3.我尝试使用{{ places_formset }}来呈现表单,而不是逐个呈现表单字段。在这种情况下,表单使用删除复选框呈现,但不会替换为删除链接。此外,添加项目链接也消失了。
我还能做些什么来启用删除链接?
发布于 2018-02-21 13:33:48
加载页面时,表单集是否隐藏?如果是这样,即使表单可见,jquery.formset.js中的以下语句也会返回false。
if (row.is(':visible')) {
insertDeleteLink(row);
applyExtraClasses(row, i);
}这已经被提出,并且有一个开放的问题https://github.com/elo80ka/django-dynamic-formset/issues/54
在问题解决之前,我已经从jquery.formset.js的本地副本中删除了if语句
发布于 2017-01-30 21:39:16
Django-dynamic-formset不适合我。在查看了它的代码后,我显式地呈现了链接:
<a href="javascript:void(0)" class="delete-row">{% trans 'delete' %}</a>https://stackoverflow.com/questions/41897384
复制相似问题