You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ODOO V16中web/session/authenticate接口返回'NoneType'无user属性错误

Odoo 16 认证接口返回 'NoneType' object has no attribute 'user' 错误解决

问题分析

从错误栈能定位核心问题:调用 ir.http.session_info() 时,request 对象为 None,无法访问 request.env.user。关键代码行 /odoo-16/addons/web/controllers/session.py", line 52, in authenticate print('session_info', env['ir.http'].session_info()) 显示,大概率是自定义修改了Odoo核心模块的代码——原版Odoo 16的authenticate方法不会直接用env调用session_info,而是先完成会话认证,再通过request.env获取。此外,请求格式不符合Odoo JSON-RPC 2.0规范,也可能导致请求上下文未正确初始化。

解决方案

1. 恢复web模块核心代码

如果修改过addons/web/controllers/session.py文件,删除添加的print('session_info', env['ir.http'].session_info())语句,恢复原版认证逻辑:

def authenticate(self, db, login, password, base_url=None):
    request.session.authenticate(db, login, password)
    return request.env['ir.http'].session_info()

2. 修正请求体格式

确保POST请求体符合Odoo JSON-RPC 2.0完整格式,必须包含jsonrpc和id字段:

{
    "jsonrpc": "2.0",
    "id": 1,
    "params": {
        "db": "你的数据库名",
        "login": "你的用户名",
        "password": "你的密码"
    }
}

3. 排查冲突模块

若未修改核心代码,检查是否安装了自定义或第三方模块(涉及会话、HTTP请求处理的模块),这类模块可能重写了session_info方法导致上下文异常。可尝试禁用非核心模块后重新测试。

内容的提问来源于stack exchange,提问作者abdeltif-b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:50:21