From f932d5a0a7e1923785766e51b5ecca0347e20a9a 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 09:55:59 +0800 Subject: [PATCH] Changed the _form pseudo @property to the get_form_class () method in the FormView in the Mia core application. --- mia_core/views.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mia_core/views.py b/mia_core/views.py index 78ec6e1..2d21cc0 100644 --- a/mia_core/views.py +++ b/mia_core/views.py @@ -76,7 +76,7 @@ class FormView(View): elif obj is not None: form = self.make_form_from_model(obj) else: - form = self._form() + form = self.get_form_class()() return render(self.request, self.get_template_name(), { self.context_object_name: form }) @@ -104,8 +104,7 @@ class FormView(View): return redirect(str(UrlBuilder(self.get_success_url()) .query(r=self.request.GET.get("r")))) - @property - def _form(self): + def get_form_class(self): if self.form_class is None: raise AttributeError("Please defined the form_class property.") return self.form_class @@ -141,12 +140,13 @@ class FormView(View): def make_form_from_post(self, post: Dict[str, str]) -> forms.Form: """Creates and returns the form from the POST data.""" - return self._form(post) + return self.get_form_class()(post) def make_form_from_model(self, obj: Model) -> forms.Form: """Creates and returns the form from a data model.""" - return self._form({x: getattr(obj, x, None) - for x in self._form.base_fields}) + form_class = self.get_form_class() + return form_class({x: getattr(obj, x, None) + for x in form_class.base_fields}) def fill_model_from_form(self, obj: Model, form: forms.Form) -> None: """Fills in the data model from the form."""