From 9774adf7ac7554d76d3b5c823cee650b1de2d127 Mon Sep 17 00:00:00 2001 From: Exequiel Arona Date: Fri, 5 Dec 2025 05:18:36 -0300 Subject: [PATCH] fix: fields are pass to virtual doctype controller (#35078) --- frappe/model/qb_query.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/frappe/model/qb_query.py b/frappe/model/qb_query.py index 882fcc531f..526529cfa6 100644 --- a/frappe/model/qb_query.py +++ b/frappe/model/qb_query.py @@ -113,9 +113,14 @@ class DatabaseQuery: # if `filters` is a list of strings, its probably fields filters, fields = fields, filters + # Set fields to the requested field or `name` if none specified + if not fields: + fields = [pluck or "name"] + # Handle virtual doctypes before any other processing if is_virtual_doctype(self.doctype): return self._handle_virtual_doctype( + fields, filters, or_filters, start, @@ -162,10 +167,6 @@ class DatabaseQuery: if limit is None: limit = page_length - # Set fields to the requested field or `name` if none specified - if not fields: - fields = [pluck or "name"] - # Check if table exists before running query from frappe.model.meta import get_table_columns @@ -285,6 +286,7 @@ class DatabaseQuery: def _handle_virtual_doctype( self, + fields: list[str] | tuple[str, ...] | str | None, filters: dict[str, FilterValue] | FilterValue | list[list | FilterValue] | None, or_filters: dict[str, FilterValue] | FilterValue | list[list | FilterValue] | None, start: int | None, @@ -331,6 +333,7 @@ class DatabaseQuery: _page_length = page_length or limit or limit_page_length or 20 kwargs = { + "fields": fields, "filters": filters, "or_filters": or_filters, "start": start or offset or limit_start or 0,