[UPDT] HORILLA VIEWS: Error handling method
This commit is contained in:
@@ -3,6 +3,7 @@ horilla/generic/views.py
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
import logging
|
||||||
from typing import Any
|
from typing import Any
|
||||||
from urllib.parse import parse_qs
|
from urllib.parse import parse_qs
|
||||||
|
|
||||||
@@ -34,6 +35,8 @@ from horilla_views.cbv_methods import ( # update_initial_cache,
|
|||||||
from horilla_views.forms import DynamicBulkUpdateForm, ToggleColumnForm
|
from horilla_views.forms import DynamicBulkUpdateForm, ToggleColumnForm
|
||||||
from horilla_views.templatetags.generic_template_filters import getattribute
|
from horilla_views.templatetags.generic_template_filters import getattribute
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@method_decorator(hx_request_required, name="dispatch")
|
@method_decorator(hx_request_required, name="dispatch")
|
||||||
class HorillaListView(ListView):
|
class HorillaListView(ListView):
|
||||||
@@ -570,9 +573,27 @@ class HorillaDetailedView(DetailView):
|
|||||||
action_method: list = []
|
action_method: list = []
|
||||||
actions: list = []
|
actions: list = []
|
||||||
cols: dict = {}
|
cols: dict = {}
|
||||||
|
instance = None
|
||||||
|
empty_template = None
|
||||||
|
|
||||||
ids_key: str = "instance_ids"
|
ids_key: str = "instance_ids"
|
||||||
|
|
||||||
|
def get_object(self, queryset=None):
|
||||||
|
try:
|
||||||
|
self.instance = super().get_object(queryset)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Error getting object: {e}")
|
||||||
|
return self.instance
|
||||||
|
|
||||||
|
def get(self, request, *args, **kwargs):
|
||||||
|
response = super().get(request, *args, **kwargs)
|
||||||
|
if not self.instance and self.empty_template:
|
||||||
|
return render(request, self.empty_template, context=self.get_context_data())
|
||||||
|
elif not self.instance:
|
||||||
|
messages.info(request, "No record found...")
|
||||||
|
return HttpResponse("<script>window.location.reload()</script>")
|
||||||
|
return response
|
||||||
|
|
||||||
def __init__(self, **kwargs: Any) -> None:
|
def __init__(self, **kwargs: Any) -> None:
|
||||||
super().__init__(**kwargs)
|
super().__init__(**kwargs)
|
||||||
request = getattr(_thread_locals, "request", None)
|
request = getattr(_thread_locals, "request", None)
|
||||||
@@ -584,6 +605,8 @@ class HorillaDetailedView(DetailView):
|
|||||||
instance_ids = self.request.session.get(
|
instance_ids = self.request.session.get(
|
||||||
f"ordered_ids_{self.model.__name__.lower()}", []
|
f"ordered_ids_{self.model.__name__.lower()}", []
|
||||||
)
|
)
|
||||||
|
if not context.get("object", False):
|
||||||
|
return context
|
||||||
|
|
||||||
pk = context["object"].pk
|
pk = context["object"].pk
|
||||||
# if instance_ids:
|
# if instance_ids:
|
||||||
|
|||||||
Reference in New Issue
Block a user