def create_synopsis(request): """ Create a new synopsis """ FactFormset = inlineformset_factory( Synopsis, Fact, formset=ValidatingFormSet, exclude=["order"], extra=3, can_delete=False ) PointFormset = inlineformset_factory( Synopsis, Point, formset=ValidatingFormSet, exclude=["order"], extra=3, can_delete=False ) if request.method == "POST": form = SynopsisForm(request.POST) if form.is_valid(): synopsis = form.save(commit=False) synopsis.user = request.user fact_formset = FactFormset(request.POST, instance=synopsis, prefix="facts") point_formset = PointFormset(request.POST, instance=synopsis, prefix="points") if fact_formset.is_valid() and point_formset.is_valid(): synopsis.save() facts = fact_formset.save() points = point_formset.save() return HttpResponseRedirect(synopsis.get_absolute_url()) else: synopsis = Synopsis() fact_formset = FactFormset(request.POST, instance=synopsis, prefix="facts") point_formset = PointFormset(request.POST, instance=synopsis, prefix="points") else: form = SynopsisForm() synopsis = Synopsis() fact_formset = FactFormset(instance=synopsis, prefix="facts") point_formset = PointFormset(instance=synopsis, prefix="points") return render_to_response( "synopses/create_synopsis.html", {"form": form, "fact_formset": fact_formset, "point_formset": point_formset}, context_instance=RequestContext(request), )
def update_synopsis(request, synopsis_id): """ Update a specific synopsis """ synopsis = get_object_or_404(Synopsis, pk=synopsis_id) if not (synopsis.user == request.user): raise Http404 FactFormset = inlineformset_factory(Synopsis, Fact, formset=ValidatingFormSet, exclude=["order"], extra=3) PointFormset = inlineformset_factory(Synopsis, Point, formset=ValidatingFormSet, exclude=["order"], extra=3) if request.method == "POST": form = SynopsisForm(request.POST, instance=synopsis) if form.is_valid(): synopsis = form.save(commit=False) synopsis.user = request.user fact_formset = FactFormset(request.POST, instance=synopsis, prefix="facts") point_formset = PointFormset(request.POST, instance=synopsis, prefix="points") if fact_formset.is_valid() and point_formset.is_valid(): synopsis.save() facts = fact_formset.save() points = point_formset.save() return HttpResponseRedirect(synopsis.get_absolute_url()) else: fact_formset = FactFormset(request.POST, instance=synopsis, prefix="facts") point_formset = PointFormset(request.POST, instance=synopsis, prefix="points") else: form = SynopsisForm(instance=synopsis) fact_formset = FactFormset(instance=synopsis, prefix="facts") point_formset = PointFormset(instance=synopsis, prefix="points") return render_to_response( "synopses/update_synopsis.html", {"form": form, "synopsis": synopsis, "fact_formset": fact_formset, "point_formset": point_formset}, context_instance=RequestContext(request), )