Permissions Odoo11-未登录用户从网站在模型后端使用方法

Permissions Odoo11-未登录用户从网站在模型后端使用方法,permissions,odoo,odoo-11,Permissions,Odoo,Odoo 11,我使用Odoo11,我需要调用一些方法,这些方法由未登录的用户从网站声明到后端模型中 在控制器中,我在写入和搜索中使用了参数auth=“public”和一些.sudo(),这一切都很好,但我有一些javascript在后端调用的方法,当未登录的用户触发这些方法时,我会收到以下错误: /11.0/OCB/odoo/addons/base/ir/ir_http.py(90)_auth_method_user() raise http.SessionExpiredException("Session

我使用Odoo11,我需要调用一些方法,这些方法由未登录的用户从网站声明到后端模型中

在控制器中,我在写入和搜索中使用了参数auth=“public”和一些.sudo(),这一切都很好,但我有一些javascript在后端调用的方法,当未登录的用户触发这些方法时,我会收到以下错误:

/11.0/OCB/odoo/addons/base/ir/ir_http.py(90)_auth_method_user()
raise http.SessionExpiredException("Session expired")
我能做点什么吗? 后端也有sudo().write()或sudo().search(),但仍然得到错误。。。。对于登录的Porta用户没有问题,但我需要让未登录的用户使用

这是从model ir.http向我发送错误消息的方法

@classmethod
def _auth_method_user(cls):
    request.uid = request.session.uid
    if not request.uid:
        raise http.SessionExpiredException("Session expired")

我通过将所有后端方法移动到带有parameter auth=“public”的控制器中解决了这个问题,这使我可以在没有auth权限的情况下执行操作

@http.route("/save_values",
                type="json",
                auth="public",
                website=True)
    def save_values(self, value_from_js):
        checklist_line_obj = request.env['worksheet.checklist.line']
        for line_id in value_from_js:
            line = checklist_line_obj.browse(int(line_id))
            vals = value_from_js[line_id]

            line.sudo().write(vals)
这里是调用控制器的Javascript:

ajax.jsonRpc("/save_values", "call", {"value_from_js": dataToSendWorksheet})
                    .then(function () {
                        //DO something
                    });