我正在使用odoo V16。当我用正文中正确的用户凭据向web/会话/身份验证端点发送POST请求时,如下所示:
{
"params": {
"db":<DB>,
"login": <LOGIN>,
"password": <PASSWORD>
}
}我收到了错误消息"'NoneType‘对象没有属性'user'“的错误响应。预期的行为是具有会话信息的JSON响应,如下所示:
{
"jsonrpc": "2.0",
"id": null,
"result": {...}
} 我不确定这是新的odoo版本中的一个bug,还是我做错了什么。任何帮助都是非常感谢的。谢谢!
全错误响应
{ "jsonrpc":"2.0","id":null,“错误”:{“代码”:200,“消息”:"Odoo错误“,”数据“:{”名称“:"builtins.AttributeError",”调试“:”回溯(最近一次调用):文件“/Odoo-16/odoo/http.py,1963年,在 call response = request._serve_nodb() File "/odoo-16/odoo/http.py”中),第1516行,在_serve_nodb response = self.dispatcher.dispatch(rule.endpoint,args) File "/odoo-16/odoo/http.py“中,第1775行,在调度结果=终结点(**self.request.params) File "/odoo-16/odoo/http.py”中,第673行,在route_wrapper response=端点(self,*args,**params_ok) File "/odoo-16/addons/web/controllers/session.py“中,第52行,在身份验证打印(‘session_info’,env‘ir.sessioninfo() File "/odoo-16/addons/web_tour/models/ir_http.py",第12行,在session_info result = super().session_info() File“/odoo-16/addons/web/model/ir_http.py”中,第68行,在session_info user = request.env.user AttributeError中:'NoneType’对象没有属性'user‘,"message":’NoneType‘对象没有属性’user‘,“参数”:"'NoneType‘对象没有属性'user'“、”上下文“:{} } }
发布于 2022-11-17 18:17:07
我也面临着同样的问题,我找到了一个解决办法。
问题
当您调用Odoo进行身份验证web/session/authenticate时,问题就会发生。
我们通常将POST请求中的登录数据发送到服务器
{"params":{"db":"odoo16","login":"admin","password":"***"}}我有个错误说:
File "/usr/lib/python3/dist-packages/odoo/addons/mail/models/ir_http.py", line 17, in session_info
user = request.env.user
AttributeError: 'NoneType' object has no attribute 'user'解决方案
当服务器中有many databases时,就会出现这个问题,因此请求处理程序无法从env变量中获取user。

但是如果您更新了odoo.conf并添加了一个dbfilter = odoo16,然后重新启动服务器。您将只有一个这样的数据库:

然后,如果调用API,您将得到正确的works fine响应和正确的响应,
{
"jsonrpc": "2.0",
"id": null,
"result": {
"uid": 2,
"is_system": true,
"is_admin": true,
"user_context": {
"lang": "en_US",
"tz": "Africa/Cairo",
"uid": 2
},
...
...
...
}
}希望这有助于您解决您的问题,直到Odoo修复那里的错误。
https://stackoverflow.com/questions/74257926
复制相似问题