Odoo 13 - 搜索方法 - 对模型的相关字段使用 'order' 属性



我有两个模型更像下面的示例

型号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-用户详细信息

first_name = fields.Char(String='First Name')
last_name = fields.Char(String='Last Name')
age = fields.Integer()
.
.
.

我正试图用以下搜索条件从发票模型中获取所有记录

域过滤器-payment_method='Cash'&payd_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"属性来获取记录呢?

顺序必须是以逗号分隔的有效字段名列表,后面可以选择ASCDESC方向。

不能使用虚线名称(关系字段的字段(。

最新更新