Browse Source

refactor(BaseDocument)!: dont return `__dict__` if `key` is falsy

version-14
Sagar Vora 3 years ago
parent
commit
e9b1cdcdca
1 changed files with 18 additions and 20 deletions
  1. +18
    -20
      frappe/model/base_document.py

+ 18
- 20
frappe/model/base_document.py View File

@@ -133,31 +133,29 @@ class BaseDocument(object):
return frappe.db.get_value(self.doctype, self.name, key) return frappe.db.get_value(self.doctype, self.name, key)


def get(self, key=None, filters=None, limit=None, default=None): 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: else:
default = filters
filters = None
value = self.__dict__.get(key, default) 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): def getone(self, key, filters=None):
return self.get(key, filters=filters, limit=1)[0] return self.get(key, filters=filters, limit=1)[0]


Loading…
Cancel
Save