odoo - Odoo 序列重置坚持使用 UTC
问题描述
我正在使用 Odoo 序列作为表格编号。此序列设置为每月重置。但我注意到序列重置时间存在问题。
该序列结果是重置每个 UTC,而不是在服务器时区,即 UTC +8。因此,当交易发生在 7 月 1 日上午 7 点(UTC + 8)时,序列仍未重置。重置发生在 7 月 1 日上午 8 点(UTC)。
如何根据我的时区重置序列?服务器时区已经是 UTC + 8。
解决方案
两个选项:
- 检查数据库的时区。使用以下命令在您的 postgres db 终端中执行此操作:
show timezone;
您应该期待您的本地时区或 UTC
- 如果您检查功能背后的模型,请在 postgress 控制台中:
\d ir_sequence_date_range
您可能会注意到与日期范围(date_from、date_to)相关的字段被创建为“date”而不是“datetime”,因此它会错过时间。
此外,在表单视图中,无法设置时间: sequence_form
因此,另一种方法是将列的数据类型从日期更改为日期时间。为此,您必须扩展模型并重写字段,如下所示:
class IrSequenceDateRangeExtended(models.Model):
_inherit = 'ir.sequence.date_range'
date_from = fields.Datetime(string='From', required=True)
date_to = fields.Datetime(string='To', required=True)
然后,更新后,您应该能够将时间设置为日期。我希望它对你有帮助。
推荐阅读
- postgresql - 如何在执行 SELECT ... 语句时将表列传递到 plpgsql 函数中
- apache-kafka - 为融合云安装连接器
- python - 无法从数据帧切片运行预测,卡在应该是 2d 的 1d 数组中
- elasticsearch - 命名的 multi_match 查询
- r - 根据 r 中的日期范围为季节类别添加列
- github - `config.yml` 文件是我为 GitHub 上的新问题页面自定义组织模板所需的吗?
- java - 在 QUARKUS 中使用 Reactive RestEasy 和 GraphQlClient 时出现线程阻塞问题
- javascript - JavaScript .filter 和 .find 有问题返回带有特定字母的项目
- python - 在 Python 模块中运行代码而不是相对于正在运行的脚本
- python - python中的第一个大项目