Odoo 11如何实现按月份分组?两种filter配置语法未生效
Odoo 11 按月份维度分组不生效的解决方案
问题本质
你写的两段filter配置语法没有问题,带不带icon属性也不影响分组功能,不生效的核心原因是:Odoo 11对搜索视图里的Date/Datetime类型字段,默认分组粒度是自然日。当context里只写group_by: 'order_date'时,系统会按每一天拆分数据做分组,根本不会自动按月聚合,自然达不到预期的按月统计效果。
正确配置写法
要指定按月粒度分组,只需要在group_by对应的字段值后面,用冒号拼接粒度标识month即可,格式为字段名:粒度,这套规则支持的粒度参数包括day、week、month、quarter、year。
对应改完的filter代码如下:
<!-- 带图标版本 --> <filter string="按采购日期(月维度)分组" icon="terp-gtk-select-all" domain="[]" context="{'group_by': 'order_date:month'}"/> <!-- 不带图标版本 --> <filter string="按采购日期(月维度)分组" domain="[]" context="{'group_by': 'order_date:month'}"/>
容易踩的额外排查点
- 先确认
order_date是模型里声明的标准Date/Datetime字段,不是把日期存成字符串的Char类型字段——这类自定义字段无法被系统的group_by机制识别日期计算逻辑 - 修改完搜索视图的XML配置后,一定要升级对应模块,再硬刷新浏览器清掉前端缓存。Odoo 11的前端会缓存搜索视图的配置,不刷新的话还是会加载旧的规则,容易误以为配置没生效
- 粒度参数的格式不要写错,Odoo 11的web客户端只认
字段名:粒度的字符串写法,不要用嵌套字典的格式传group_by参数,否则前端识别不了
内容的提问来源于stack exchange,提问作者pythoncoder
相关产品推荐
相关产品推荐

