我有两个模型更像下面的示例
型号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"属性来获取记录呢?
顺序必须是以逗号分隔的有效字段名列表,后面可以选择ASC
或DESC
方向。
不能使用虚线名称(关系字段的字段(。