Cleaned passing of session data between ChainedForms in EventCreateView.
This commit is contained in:
@@ -6,7 +6,6 @@ from django.http import HttpResponseRedirect
|
||||
from django.urls import reverse_lazy
|
||||
from django.views import generic
|
||||
|
||||
from . import converters
|
||||
from . import forms
|
||||
from . import models
|
||||
|
||||
@@ -64,18 +63,15 @@ class EventCreateView(generic.FormView):
|
||||
return context
|
||||
|
||||
def form_valid(self, form):
|
||||
previous_data = converters.SessionDict(
|
||||
self.request.session.get('dav_events_event_create_previous_data', dict()))
|
||||
previous_data.update(form.cleaned_data)
|
||||
|
||||
event = converters.event_factory(previous_data)
|
||||
form.add_session_data(self.request.session.get('dav_events_event_create_previous_data', dict()))
|
||||
event = form.save()
|
||||
|
||||
next_form_name = form.next_form_name
|
||||
if next_form_name:
|
||||
self.request.session['dav_events_event_create_previous_data'] = previous_data.session_data
|
||||
self.request.session['dav_events_event_create_previous_data'] = form.get_session_data()
|
||||
self.request.session['dav_events_event_create_next_form_name'] = next_form_name
|
||||
next_form_class = self.get_form_class(next_form_name)
|
||||
next_form = next_form_class(previous_data=previous_data)
|
||||
next_form = next_form_class(session_data=form.get_session_data())
|
||||
return self.render_to_response(self.get_context_data(form=next_form, event=event))
|
||||
else:
|
||||
event.save()
|
||||
|
||||
Reference in New Issue
Block a user