From 01a0031cf45a28487299183ac5e7f3a4a34bb966 Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Mon, 20 Oct 2025 13:53:27 -0500 Subject: [PATCH] Fix a regression added by some refactor. --- crudkit/core/base.py | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/crudkit/core/base.py b/crudkit/core/base.py index e612f13..d73a04f 100644 --- a/crudkit/core/base.py +++ b/crudkit/core/base.py @@ -40,14 +40,27 @@ def _safe_get_loaded_attr(obj, name): if st is None: return None try: - attrs = getattr(st, "attrs", {}).get(name) - if attrs is not None and name in attrs: - attr = attrs[name] - val = attr.loaded_value - return None if val is NO_VALUE else val st_dict = getattr(st, "dict", {}) if name in st_dict: - return st_dict.get(name) + return st_dict[name] + + attrs = getattr(st, "attrs", None) + attr = None + if attrs is not None: + try: + attr = attrs[name] + except Exception: + try: + get = getattr(attrs, "get", None) + if callable(get): + attr = get(name) + except Exception: + attr = None + + if attr is not None: + val = attr.loaded_value + return None if val is NO_VALUE else val + return None except Exception: return None