Browse Source

Fixed #20270 -- Fixed error in AjaxResponseMixin documentation

Baptiste Mispelon 12 years ago
parent
commit
73c26f0c95
1 changed files with 8 additions and 3 deletions
  1. 8 3
      docs/topics/class-based-views/generic-editing.txt

+ 8 - 3
docs/topics/class-based-views/generic-editing.txt

@@ -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