diff --git a/frappe/client.py b/frappe/client.py index 91f531fe1e..c65753c766 100644 --- a/frappe/client.py +++ b/frappe/client.py @@ -10,6 +10,7 @@ import frappe.utils from frappe import _ from frappe.desk.reportview import validate_args from frappe.model.db_query import check_parent_permission +from frappe.model.utils import is_virtual_doctype from frappe.utils import get_safe_filters from frappe.utils.deprecations import deprecated @@ -431,6 +432,18 @@ def validate_link(doctype: str, docname: str, fields=None): ) values = frappe._dict() + + if is_virtual_doctype(doctype): + try: + frappe.get_doc(doctype, docname) + values.name = docname + except frappe.DoesNotExistError: + frappe.clear_last_message() + frappe.msgprint( + _("Document {0} {1} does not exist").format(frappe.bold(doctype), frappe.bold(docname)), + ) + return values + values.name = frappe.db.get_value(doctype, docname, cache=True) fields = frappe.parse_json(fields)