odoo时区问题

部署运行你感兴趣的模型镜像

由于数据库中存储的是UTC时区,默认情况下数据导出和group by都存在时区问题。
彻底解决办法:将以UTC时区存储的数据改为按目标时区存储,并去掉JS中的时区转换

1、修改Odoo系统环境时区:
odoo/openerp/__init__.py 文件
import os
os.environ['TZ'] = 'UTC' # 将这里的UTC 改为Asia/Shanghai 或其它目标时区

2、修改 web页面时区转换的JS文件:
odoo/addons/web/static/src/js/openerpframework.js 中的两个方法
openerp.str_to_datetime  字符串转时间
openerp.datetime_to_str  时间转字符串
去掉这两个方法中的UTC字符。

3、修改以UTC时间执行的SQL 查询或插入语句:
去掉所有带 "at time zone 'UTC'" 或 "at time zone 'utc'"字符串的语句。
 odoo/openerp/models.py 特别是create_date、write_date字段值;
 odoo/openerp/addons/base/ir/ir_cron.py  定时任务中UTC时区改为当前时区;
 odoo/openerp/netsvc.py  备份下来的数据库名称时间标志

4、修改其他功能性模块中带 "at time zone" 字符串来取UTC时间的语句。
 如 calendar 模块和 hr_timesheet_sheet模块

 

 

2016-10-05追加:

Odoo9.0写法和8.0不太一样。找不到js的时间转换的地方了。没时间调试进去看了。暂时搁置。

感觉必须把服务器时区改成UTC。然后,ODOO里的用户首选项里选择哪个时区,就是对应哪个时区的时间。

但是如果和别的应用共用一台服务器的话,不太可能吧服务器时区改成UTC。

如果要把代码里所有astimezone的地方都改一遍的话,感觉有点坑爹。

 

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

<think>嗯,用户遇到了Odoo登录后布局显示异常的问题,我需要帮他们找出可能的原因和解决方案。首先,我应该考虑常见的布局问题,比如浏览器缓存问题,因为有时候旧的缓存文件会导致CSS或JavaScript加载不正确。解决方法通常是清除缓存或者尝试无痕模式访问,这样能排除缓存干扰。 接下来,用户的浏览器兼容性也是一个可能因素。Odoo可能在某些浏览器版本上表现不佳,特别是旧版的IE或者非主流浏览器。这时候建议用户使用Chrome或Firefox的最新版本,并检查控制台是否有JavaScript错误,这些错误会影响页面渲染。 然后,检查用户的模块是否有冲突。用户可能安装了第三方模块或者自己开发了模块,这些模块中的前端代码可能和Odoo的原有代码冲突。进入开发者模式,停用最近安装的模块,或者逐一排查,看看问题是否解决。同时,查看服务端日志是否有错误提示,比如Python的traceback或者前端资源加载失败的信息。 另外,检查Odoo的版本和更新情况也很重要。如果用户最近升级过Odoo,可能需要检查模块的兼容性,特别是社区模块是否支持当前版本。根据引用5,Odoo 17有一些重大变更,比如视图中的attrs和states属性不再使用,改为直接在XML中使用条件表达式。如果用户的模块还使用旧的属性,就会导致布局问题。需要确保所有自定义视图符合新版本的语法要求。 还有,主题或自定义CSS的问题。如果用户使用了自定义主题,可能存在CSS冲突或错误,导致布局错乱。可以尝试切换回默认主题,看看问题是否解决。同时,检查自定义CSS文件是否有语法错误,或者覆盖了Odoo原有的样式。 数据库问题也不容忽视,比如引用2提到的语言和货币设置不正确,可能导致显示异常。检查数据库中的语言配置、时区设置是否正确,特别是多语言环境下,字段的翻译是否正确加载。还有,检查用户个人设置中的参数,比如时区、日期格式是否合适。 最后,文件权限问题可能导致静态资源无法正确加载。确保Odoo的静态文件目录(通常是在addons和static目录)有正确的权限,服务器能够读取这些文件。如果权限不足,页面可能缺少样式或脚本,导致布局混乱。 总结下来,解决方案需要从浏览器、模块冲突、版本兼容性、主题CSS、数据库设置以及文件权限等多个方面进行排查。建议用户按照步骤逐一检查,找出具体原因后再进行相应的修复。如果问题依旧存在,可能需要更深入的调试,比如查看网络请求中是否有资源加载失败,或者使用开发者工具检查元素样式是否正确应用。</think>### Odoo登录后布局显示异常的解决方案 #### 一、常见原因分析 1. **浏览器缓存问题** Odoo前端资源(CSS/JS)未正确加载时,可能导致布局错乱。建议先尝试以下操作: - 清除浏览器缓存(快捷键:$Ctrl+Shift+Delete$) - 使用无痕模式访问,排除插件干扰[^1] 2. **模块兼容性问题** 第三方模块或自定义模块可能覆盖原有视图定义。检查方法: ```bash # 进入开发者模式 → 应用 → 停用最近安装的模块 ``` 通过引用[4]可知,视图定义(如`tree`、`form`)中属性语法错误会导致渲染异常,需检查XML文件是否符合Odoo 17规范[^4]。 3. **主题或CSS冲突** 自定义主题可能破坏默认布局结构。验证步骤: - 切换回默认主题 - 检查控制台错误(浏览器按$F12$ → Console标签) #### 二、关键排查步骤 1. **检查服务端日志** 通过日志定位资源加载错误或视图解析失败: ```bash tail -f /var/log/odoo/odoo.log | grep 'WARNING\|ERROR' ``` 2. **验证视图定义规范** 根据引用[5],Odoo 17弃用了`attrs`和`states`属性,改用直接条件表达式: ```xml <!-- 错误示例 --> <field name="name" attrs="{'readonly': [('state', '=', 'done')]}"/> <!-- 正确示例(Odoo 17) --> <field name="name" readonly="state == 'done'"/> ``` 3. **数据库配置验证** 通过引用[1]检查数据库连接参数,确保`odoo.conf`中`db_name`正确指向有效数据库: ```ini [options] db_name = odoo_db db_user = odoo_user db_password = your_password ``` #### 三、高级调试方案 1. **强制重建静态资源** 在开发者模式下执行: ```python # 访问 http://localhost:8069/web?debug=assets ``` 点击"强制重新加载资产" 2. **检查多语言配置** 根据引用[2],字段语言显示问题可能影响布局,确认视图中的`t-att-lang`属性正确: ```xml <field name="name" t-att-lang="lang"/> ``` ####
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值