Reputation: 51
We're using formset.js in our django project to add or delete forms in a form. I can't make the delete button work.
I see in the formset.js (available here https://pypi.python.org/pypi/django-formset-js/0.4.0 )
this code :
Formset.prototype.bindForm = function($form, index) {
var prefix = this.formsetPrefix + '-' + index;
$form.data(pluginName + '__formPrefix', prefix);
var $delete = $form.find('[name=' + prefix + '-DELETE]');
// Trigger `formAdded` / `formDeleted` events when delete checkbox value changes
$delete.change(function(event) {
if ($delete.is(':checked')) {
$form.attr('data-formset-form-deleted', '');
$form.trigger('formDeleted');
} else {
$form.removeAttr('data-formset-form-deleted');
$form.trigger('formAdded');
}
}).trigger('change');
var $deleteButton = $form.find(this.opts.deleteButton);
$deleteButton.bind('click', function() {
$delete.attr('checked', true).change();
});
};
My problem is that i don't find any checkbox in the code. The template shows this :
<div data-formset-body>
<!-- New forms will be inserted in here -->
{% for form in formset %}
<div data-formset-form>
{{ form.as_p }}
<!-- ajout YCO pour progresser dans le delete
<input type="checkbox" name="form-{{ forloop.counter0 }}-DELETE">
-->
<div class="hidden">{{ form.DELETE }}</div>
<a data-formset-delete-button >{% trans "Delete form" %}</a>
<!-- onclick ="$(this).parent().remove();" -->
</div>
{% endfor %}
</div>
Could someone tell me :
Is there a checkbox needed somewhere or if that property is added by the script to the delete button ?
Where should i write the code <input type="checkbox" name="form-0-DELETED"> ?
Is there a working sample of a working delete button available somewhere ?
Upvotes: 4
Views: 3146
Reputation: 21
When using yourform.DELETE
in template, must use with can_delete
formset parameter as below.
from django import forms
from django.forms.formsets import formset_factory
class YourForm(forms.Form):
date = forms.DateField()
YourFormSet = formset_factory(YourForm, can_delete = True)
Upvotes: 2