diff --git a/frappe/client.py b/frappe/client.py index 129c73a0cf..3c0ce8ea8a 100644 --- a/frappe/client.py +++ b/frappe/client.py @@ -78,7 +78,13 @@ def get(doctype, name=None, filters=None, parent=None): if frappe.is_table(doctype): check_parent_permission(parent, doctype) - doc = frappe.get_doc(doctype, name or frappe.parse_json(filters)) + if name: + doc = frappe.get_doc(doctype, name) + elif filters or filters == {}: + doc = frappe.get_doc(doctype, frappe.parse_json(filters)) + else: + doc = frappe.get_doc(doctype) # single + doc.check_permission() return doc.as_dict() diff --git a/frappe/tests/test_client.py b/frappe/tests/test_client.py index 1a1c4f3232..3587d5eb63 100644 --- a/frappe/tests/test_client.py +++ b/frappe/tests/test_client.py @@ -139,7 +139,8 @@ class TestClient(unittest.TestCase): self.assertEqual(get("ToDo", filters=filters).description, "test") self.assertEqual(get("ToDo", filters=filters_json).description, "test") - + self.assertEqual(get("System Settings", "", "").doctype, "System Settings") + self.assertEqual(get("ToDo", filters={}), get("ToDo", filters="{}")) todo.delete() def test_client_insert(self):