But I can't get the buttons "Add another" neither "Delete" working.
And I'm sure I'm missing something that I don't know yet.
This is what I have so far:
from django import forms
from django.forms.formsets import formset_factory
class ArticleForm(forms.Form):
title = forms.CharField()
pub_date = forms.DateField()
views.pyfrom django.forms.formsets import formset_factory
from django.shortcuts import render_to_response
from formsets.djdocs.forms import ArticleForm
def manage_articles(request):
ArticleFormSet = formset_factory(ArticleForm, can_delete=True, extra=2)
if request.method == 'POST':
formset = ArticleFormSet(request.POST, request.FILES)
if formset.is_valid():
# do something with the formset.cleaned_data
for form in formset:
print(form.as_table())
pass
else:
formset = ArticleFormSet()
return render_to_response('djdocs/manage_articles.html', {'formset': formset})
urls.py
from django.conf.urls import patterns, include, url
from formsets.djdocs.views import manage_articles
urlpatterns = patterns('djdocs.views',
url(r'^$', manage_articles),
)
template manage_articles.html
{% extends "index.html" %}
{% block content %}
{% load formset_tags %}
<div id="formset" data-formset-prefix="{{ formset.prefix }}">
{{ formset.management_form }}
<div data-formset-body>
<!-- New forms will be inserted in here -->
{% for form in formset %}
<div data-formset-form>
{{ form }}
<div class="hidden">{{ form.DELETE }}</div>
<button type="button" data-formset-delete-button>Delete form</button>
</div>
{% endfor %}
</div>
<!-- The empty form template. By wrapping this in a <script> tag, the
__prefix__ placeholder can easily be replaced in both attributes and
any scripts -->
<script type="form-template" data-formset-empty-form>
{% escapescript %}
<div data-formset-form>
{{ formset.empty_form }}
<button type="button" data-formset-delete-button>Delete form</button>
</div>
{% endescapescript %}
</script>
<!-- This button will add a new form when clicked -->
<input type="button" value="Add another" data-formset-add>
<script>jQuery(function($) {
$("#formset").formset({
animateForms: true
});
});</script>
</div>
{% endblock %}
In the index.html file I'm loading the .js like:
{% load staticfiles %}
<script src="{% static "js/jquery.js" %}"></script>
<script src="{% static "js/jquery.formset.js" %}"></script>
Any advice? :)
Best regards,
Leandro