From c453ad2d97a8a2b5c267d0a25bf26aab2e066de2 Mon Sep 17 00:00:00 2001 From: Sagar Vora Date: Fri, 16 Dec 2022 22:26:17 +0530 Subject: [PATCH] perf: reuse `_doc_before_save` in `doc.get_latest` --- frappe/model/base_document.py | 2 ++ frappe/model/document.py | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index 09cc34891a..445d000f1b 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -89,8 +89,10 @@ class BaseDocument: "meta", "_meta", "flags", + "parent_doc", "_table_fields", "_valid_columns", + "_doc_before_save", "_table_fieldnames", "_reserved_keywords", "dont_update_if_missing", diff --git a/frappe/model/document.py b/frappe/model/document.py index 4875d637bf..125c44e994 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -193,9 +193,10 @@ class Document(BaseDocument): self.load_from_db() def get_latest(self): - if not getattr(self, "latest", None): - self.latest = frappe.get_doc(self.doctype, self.name) - return self.latest + if not hasattr(self, "_doc_before_save"): + self.load_doc_before_save() + + return self._doc_before_save def check_permission(self, permtype="read", permlevel=None): """Raise `frappe.PermissionError` if not permitted"""