diff --git a/core/views/__init__.py b/core/views/__init__.py index fdc818b..4d3cc9c 100644 --- a/core/views/__init__.py +++ b/core/views/__init__.py @@ -18,6 +18,11 @@ class ObjectNameMixin(object): self.context_object_name_singular = self.title_singular.lower() # hook self.title = self.model._meta.verbose_name_plural.title() # Hooks self.context_object_name = self.title.lower() # hooks + + self.context_object_name = self.context_object_name.replace(" ", "") + self.context_object_name_singular = self.context_object_name_singular.replace( + " ", "" + ) super().__init__(*args, **kwargs) @@ -128,8 +133,13 @@ class ObjectCreate(ObjectNameMixin, CreateView): response["HX-Trigger"] = f"{self.context_object_name_singular}Event" return response + def form_invalid(self, form): + """If the form is invalid, render the invalid form.""" + return self.get(self.request, **self.kwargs, form=form) + def get(self, request, *args, **kwargs): self.request = request + self.kwargs = kwargs type = kwargs.get("type", None) if not type: return HttpResponseBadRequest("No type specified") @@ -150,6 +160,9 @@ class ObjectCreate(ObjectNameMixin, CreateView): list_url = reverse(self.list_url_name, kwargs=list_url_args) context = self.get_context_data() + form = kwargs.get("form", None) + if form: + context["form"] = form context["unique"] = unique context["window_content"] = self.window_content context["context_object_name"] = self.context_object_name @@ -197,6 +210,10 @@ class ObjectUpdate(ObjectNameMixin, UpdateView): response["HX-Trigger"] = f"{self.context_object_name_singular}Event" return response + def form_invalid(self, form): + """If the form is invalid, render the invalid form.""" + return self.get(self.request, **self.kwargs, form=form) + def get(self, request, *args, **kwargs): self.request = request type = kwargs.get("type", None) @@ -215,6 +232,9 @@ class ObjectUpdate(ObjectNameMixin, UpdateView): self.object = self.get_object() submit_url = reverse(self.submit_url_name, kwargs={"type": type, "pk": pk}) context = self.get_context_data() + form = kwargs.get("form", None) + if form: + context["form"] = form context["unique"] = unique context["window_content"] = self.window_content context["context_object_name"] = self.context_object_name