From 9c98cb70f4a0027de9f840990ba6f704d549161e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BE=9D=E7=91=AA=E8=B2=93?= Date: Sun, 16 Aug 2020 18:31:02 +0800 Subject: [PATCH] Split the post() method into form_valid() and form_invalid() in the FormView in the Mia core application. --- mia_core/views.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mia_core/views.py b/mia_core/views.py index 88be9c1..29cebb1 100644 --- a/mia_core/views.py +++ b/mia_core/views.py @@ -75,13 +75,21 @@ class FormView(View): def post(self, request: HttpRequest, *args, **kwargs) -> HttpResponseRedirect: """Handles the POST requests.""" - obj = self.get_object() post = self.request.POST.dict() utils.strip_post(post) form = self.make_form_from_post(post) if not form.is_valid(): - return stored_post.error_redirect( - self.request, self.get_error_url(), post) + return self.form_invalid(form) + return self.form_valid(form) + + def form_invalid(self, form) -> HttpResponseRedirect: + """Handles the action when the POST form is invalid""" + return stored_post.error_redirect( + self.request, self.get_error_url(), form.data) + + def form_valid(self, form) -> HttpResponseRedirect: + """Handles the action when the POST form is valid""" + obj = self.get_object() if obj is None: obj = self._model() self._set_object(obj)