如何在 Odoo 12 的 json 控制器中获取特定记录

How to get specific record in json controller in Odoo 12

我的问题说明了一切。 我已经做了一个控制器来搜索特定型号的所有记录。

现在我只想从同一型号中搜索一条记录(通过其 ID)。

我所有记录的控制器是这样的:

@http.route('/get_sales', type='json', auth='user')
    def get_sales(self):
        sales_rec = request.env['sale.order'].search([])
        sales = []
        for rec in sales_rec:
            vals = {
                'id': rec.id,
                'name': rec.name,
                'partner_id': rec.partner_id,
            }
            sales.append(vals)
        data = {'status': 200, 'response': sales, 'message': 'All sales returned'}
        return data

因此,我必须添加才能根据其 ID 获得一条记录。

谢谢。

sale_rec = request.env['sale.order'].search([('id','=',YOURID)])

sale_rec = request.env['sale.order'].browse(YOURID)

既return选中对象

首先,像这样更改您的控制器路由:

@http.route(['/get_sales', '/get_sales/<int:order_id>'], type='json', auth='user')

通过这样做,您现在可以选择使用或不使用 order_id 来调用您的路线。

其次,像这样改变你的方法:

def get_sales(self, order_id=None):

现在您可以在您的方法中添加一些逻辑:

if order_id:
    domain = [('id', '=', order_id)]
else:
    domain = []
sales_rec = request.env['sale.order'].search(domain)