From 10c3c9ea9ba374f4652a6d844b45b2f684b43bcd Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Wed, 11 Jun 2025 00:32:16 +0530 Subject: [PATCH] fix: Limit getattr to lazy loaded child tables only --- frappe/model/document.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/frappe/model/document.py b/frappe/model/document.py index c4580478b6..1903d6dfe0 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -9,7 +9,7 @@ from collections.abc import Generator, Iterable from contextlib import contextmanager from functools import wraps from types import MappingProxyType -from typing import TYPE_CHECKING, Any, Literal, Optional, TypeAlias, Union, cast, overload +from typing import TYPE_CHECKING, Any, Literal, Optional, TypeAlias, Union, overload from typing_extensions import Self, override from werkzeug.exceptions import NotFound @@ -1983,11 +1983,10 @@ class LazyDocument: @override def get(self: Document, key, filters=None, limit=None, default=None): - if isinstance(key, str): + if isinstance(key, str) and key in self._table_fieldnames: # Trigger populating of __dict__ getattr(self, key, None) - parent = cast(Document, super()) - return parent.get(key, filters, limit, default) + return super().get(key, filters, limit, default) @override def db_update_all(self):