Browse Source

perf: reduce query when calling `get_doc` with filters

version-14
Sagar Vora 3 years ago
parent
commit
bd35734307
1 changed files with 6 additions and 12 deletions
  1. +6
    -12
      frappe/model/document.py

+ 6
- 12
frappe/model/document.py View File

@@ -88,25 +88,19 @@ class Document(BaseDocument):
If DocType name and document name are passed, the object will load If DocType name and document name are passed, the object will load
all values (including child documents) from the database. all values (including child documents) from the database.
""" """
self.doctype = self.name = None
self._default_new_docs = {}
self.doctype = None
self.name = None
self.flags = frappe._dict() self.flags = frappe._dict()


if args and args[0] and isinstance(args[0], str): if args and args[0] and isinstance(args[0], str):
# first arugment is doctype # first arugment is doctype
self.doctype = args[0]

if len(args)==1: if len(args)==1:
# single # single
self.doctype = self.name = args[0]
self.name = self.doctype
else: else:
self.doctype = args[0]
if isinstance(args[1], dict):
# filter
self.name = frappe.db.get_value(args[0], args[1], "name")
if self.name is None:
frappe.throw(_("{0} {1} not found").format(_(args[0]), args[1]),
frappe.DoesNotExistError)
else:
self.name = args[1]
self.name = args[1]


if 'for_update' in kwargs: if 'for_update' in kwargs:
self.flags.for_update = kwargs.get('for_update') self.flags.for_update = kwargs.get('for_update')


Loading…
Cancel
Save