Odoo 13 - 搜索方法 - 对模型的相关字段使用 'order' 属性
Odoo 13 - Search method - use of 'order' attribute for the model's related fields
我有 2 个模型更像下面的示例
模型 1 - 发票
invoice_num = fields.Char(String='Invoice Number')
payment_method = fields.Char(String='Payment Method')
payment_date = fields.Datetime(String='Invoice Payment Date')
paid_by_id = fields.Many2one('user_details', String='Paid by user ID')
.
.
.
模型 2 - user_details
first_name = fields.Char(String='First Name')
last_name = fields.Char(String='Last Name')
age = fields.Integer()
.
.
.
我正在尝试使用以下搜索条件从发票模型中获取所有记录
域过滤器 - payment_method = 'Cash' & paid_by_id.age > 25
订单 - paid_by_id.first_name desc
偏移量 - 200
限制 - 10
对于上面的内容,原始查询就像
SELECT * FROM invoice inv
JOIN user_details ud ON inv.paid_by_id = ud.id
WHERE inv.payment_method = 'Cash' and ud.age > 25
ORDER BY ud.first_name
OFFSET 200 LIMIT 10;
我试过为同样的对象写ORM
records = request.env['invoice'].sudo().search([('payment_method', '=', 'Cash'), ('paid_by_id.age', '>', 25)], order='paid_by_id.first_name desc', offset=200, limit=10)
但是,我收到以下错误-
'Invalid "order" specified. A valid "order" specification is a comma-separated list of valid field names (optionally followed by asc/desc for the direction)'
那么,如何使用模型相关字段的 'order' 属性获取记录?
order 必须是以逗号分隔的有效字段名称列表,可以选择后跟 ASC
或 DESC
方向。
不能使用带点的名称(关系字段的字段)。
我有 2 个模型更像下面的示例
模型 1 - 发票
invoice_num = fields.Char(String='Invoice Number')
payment_method = fields.Char(String='Payment Method')
payment_date = fields.Datetime(String='Invoice Payment Date')
paid_by_id = fields.Many2one('user_details', String='Paid by user ID')
.
.
.
模型 2 - user_details
first_name = fields.Char(String='First Name')
last_name = fields.Char(String='Last Name')
age = fields.Integer()
.
.
.
我正在尝试使用以下搜索条件从发票模型中获取所有记录
域过滤器 - payment_method = 'Cash' & paid_by_id.age > 25
订单 - paid_by_id.first_name desc
偏移量 - 200
限制 - 10
对于上面的内容,原始查询就像
SELECT * FROM invoice inv
JOIN user_details ud ON inv.paid_by_id = ud.id
WHERE inv.payment_method = 'Cash' and ud.age > 25
ORDER BY ud.first_name
OFFSET 200 LIMIT 10;
我试过为同样的对象写ORM
records = request.env['invoice'].sudo().search([('payment_method', '=', 'Cash'), ('paid_by_id.age', '>', 25)], order='paid_by_id.first_name desc', offset=200, limit=10)
但是,我收到以下错误-
'Invalid "order" specified. A valid "order" specification is a comma-separated list of valid field names (optionally followed by asc/desc for the direction)'
那么,如何使用模型相关字段的 'order' 属性获取记录?
order 必须是以逗号分隔的有效字段名称列表,可以选择后跟 ASC
或 DESC
方向。
不能使用带点的名称(关系字段的字段)。