Odoo的日期过滤器不能按预期工作

时间:2018-03-17 09:38:10

标签: python python-2.7 odoo-8 odoo

在我的视图文件中,我有这个过滤器

<filter name="today" string="Today" domain="[('date','&gt;=', datetime.datetime.combine(context_today(), datetime.time(0,0,0))), ('date', '&lt;=', datetime.datetime.combine(context_today(), datetime.time(23,59,59)))]" />

我已将该过滤器设置为默认启用。

"search_default_today":1

在我的数据库中,我的表有一个日期列,它是日期类型(不是DateTime)。

Ubuntu服务器的时间,时区和日期设置已经正确。 Postgresql时区设置为当地时间。

但是当我打开列表视图时,它会显示昨天的记录。过滤器工作但不是正确的方式。当我丢弃过滤器时,它显示全部。当我应用过滤器时,它会显示昨天的记录。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

试试这个:

<filter name="today" string="Today" domain="[('date','&gt;=',context_today().strftime('%%Y-%%m-%%d 00:00:00')), ('date','&lt;=',context_today().strftime('%%Y-%%m-%%d 23:59:59')), ]"/>

OR:

<filter name="today" string="Today" domain="[('date','&gt;=',time.strftime('%%Y-%%m-%%d 00:00:00')), ('date','&lt;=',time.strftime('%%Y-%%m-%%d 23:59:59')), ]"/>

答案 1 :(得分:0)

试过这个,

<filter string="Today" domain="[('date','&lt;=', datetime.datetime.combine(context_today(), datetime.time(23,59,59))), ('date','&gt;=', datetime.datetime.combine(context_today(), datetime.time(0,0,0)))]"/>
希望它会对你有所帮助。