odoo-路由

class OdStockOrder(http.Controller):

    @http.route('/create_picking', type='http', auth='none', methods=['POST', 'GET'], csrf=False, cors="*")
    def report_dispatching_order_line_lsd(self, **kwargs):
        # db_list = odoo.service.db.list_dbs(True)
        dis_id = kwargs.get('dis_id', 0)  # 派工明细id
        employee_id = kwargs.get('employee_id', 0)  # 员工id
        report_qty = kwargs.get('report_qty', 0)  # 派工数量
        machine_id = kwargs.get('machine_id', 0)  # 机台id
        picking_type_id = request.env.ref('odbase.stock_picking_gongx_in').sudo()
        try:
            if not dis_id:
                raise UserError(u'dis_id没有接受到值,请进行传值操作!')
            dispatching_id = request.env['dispatching.order.line'].search([('id', '=', int(dis_id))]).sudo()
            if dispatching_id:
                dispatching_id.update({'employeeid': int(employee_id), 'machine_id': int(machine_id),
                                       'state': 5, 'dis_qty': report_qty})
                picking_id = request.env['od.stock.picking.order'].sudo().create({
                    'picking_type_id': picking_type_id.id,
                    'location_id': picking_type_id.default_location_src_id.id,
                    'location_dest_id': picking_type_id.default_location_dest_id.id,
                    'typebh': picking_type_id.typebh,
                })
                picking_id.codename = dispatching_id.name
                res = picking_id.with_context({'skip_create': True}).onchange_codename()
                _logger.info(res)
                jsondata = {
                    "code": 10000,
                    "result_msg": "成功",
                }
                return json.dumps(jsondata, ensure_ascii=False, ).encode('utf-8')
            else:
                raise UserError(u'未找到对应 dis_id值 为%s 的派工明细单!' % dis_id)
        except Exception as e:
            _logger.info(e)
            jsondata = {
                "code": -10000,
                "result_msg": "失败: %s!" % e,
            }
            return json.dumps(jsondata, ensure_ascii=False, ).encode('utf-8')
参数
1.route
字符串或数组,决定哪些http请求可以匹配所装饰的方法,可以是单个字符串、或多个字符串的数组。

2.type
请求的类型,可以是http或json。

3.auth
认证方法的类型,可以是以下几种:
3.1 user:必须是已通过登录认证的用户,才能访问该请求。如果未经过登录直接访问,则会拦截并跳转回odoo登录页面。
3.2 public:使用公用的认证,可以不经过登录验证直接访问。
none - 相应的方法总是可用,一般用于框架和认证模块,对应请求没有办法访问数据库或指向数据库的设置。

4.methods
这个请求所应用的一系列http方法【PATCH, POST, PUT, 或者DELETE】,如果没指定则是所有方法。
methods=['POST', 'GET']

5.cors
跨域资源cors参数。

6.csrf(boolean)
是否开启CSRF跨域保护,默认True。
6.1如果表单是用python代码生成的,可通过request.csrf_token() 获取csrf
6.2如果表单是用javascript生成的,CSRF token会自动被添加到QWEB环境变量中,通过require('web.core').csrf_token获取
6.3如果终端可从其他地方以api或webhook形式调用,需要将对应的csrf禁用,此时最好用其他方式进行验证
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值