From e9b1cdcdca0078452c16307617537f5d03fdc42e Mon Sep 17 00:00:00 2001 From: Sagar Vora Date: Wed, 23 Mar 2022 18:16:37 +0530 Subject: [PATCH] refactor(BaseDocument)!: dont return `__dict__` if `key` is falsy --- frappe/model/base_document.py | 38 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index 3e9d1317e8..0ba8a8ff17 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -133,31 +133,29 @@ class BaseDocument(object): return frappe.db.get_value(self.doctype, self.name, key) def get(self, key=None, filters=None, limit=None, default=None): - if key: - if isinstance(key, dict): - return _filter(self.get_all_children(), key, limit=limit) - if filters: - if isinstance(filters, dict): - value = _filter(self.__dict__.get(key, []), filters, limit=limit) - else: - default = filters - filters = None - value = self.__dict__.get(key, default) + if isinstance(key, dict): + return _filter(self.get_all_children(), key, limit=limit) + + if filters: + if isinstance(filters, dict): + value = _filter(self.__dict__.get(key, []), filters, limit=limit) else: + default = filters + filters = None value = self.__dict__.get(key, default) + else: + value = self.__dict__.get(key, default) - if value is None and key in ( - d.fieldname for d in self.meta.get_table_fields() - ): - value = [] - self.set(key, value) + if value is None and key in ( + d.fieldname for d in self.meta.get_table_fields() + ): + value = [] + self.set(key, value) - if limit and isinstance(value, (list, tuple)) and len(value) > limit: - value = value[:limit] + if limit and isinstance(value, (list, tuple)) and len(value) > limit: + value = value[:limit] - return value - else: - return self.__dict__ + return value def getone(self, key, filters=None): return self.get(key, filters=filters, limit=1)[0]