|
@@ -237,19 +237,24 @@ works for AJAX requests as well as 'normal' form POSTs::
|
|
|
return HttpResponse(data, **response_kwargs)
|
|
|
|
|
|
def form_invalid(self, form):
|
|
|
+ response = super(AjaxableResponseMixin, self).form_invalid(form)
|
|
|
if self.request.is_ajax():
|
|
|
return self.render_to_json_response(form.errors, status=400)
|
|
|
else:
|
|
|
- return super(AjaxableResponseMixin, self).form_invalid(form)
|
|
|
+ return response
|
|
|
|
|
|
def form_valid(self, form):
|
|
|
+ # We make sure to call the parent's form_valid() method because
|
|
|
+ # it might do some processing (in the case of CreateView, it will
|
|
|
+ # call form.save() for example).
|
|
|
+ response = super(AjaxableResponseMixin, self).form_valid(form)
|
|
|
if self.request.is_ajax():
|
|
|
data = {
|
|
|
- 'pk': form.instance.pk,
|
|
|
+ 'pk': self.object.pk,
|
|
|
}
|
|
|
return self.render_to_json_response(data)
|
|
|
else:
|
|
|
- return super(AjaxableResponseMixin, self).form_valid(form)
|
|
|
+ return response
|
|
|
|
|
|
class AuthorCreate(AjaxableResponseMixin, CreateView):
|
|
|
model = Author
|