【问题标题】:Odoo Orm date filter?Odoo Orm 日期过滤器?
【发布时间】:2020-02-29 17:30:28
【问题描述】:

如何按今天、本月和上个月过滤 orm? 类似:

a = self.env['model.model'].search_read([today])
a = self.env['model.model'].search_read([this_month])
a = self.env['model.model'].search_read([last_month])

【问题讨论】:

  • 您要过滤的字段的名称是什么。你想使用搜索还是阅读?

标签: odoo odoo-13


【解决方案1】:

在 Odoo 中过滤 Recordset 的一种方法是使用 filtered 方法 [1]。

这个工作原理完全相同,可以使用pythonfilter方法[2]。

您可以使用自定义过滤器方法在搜索返回的记录集上调用它,如下所示:

def filter_by_day(c_date, d_date):
  if (d_date.year == c_date.year)
    and (d_date.month == c_date.month)
    and (d_date.day == c_date.day):
      return True
  else:
    return False

您在 Recordset 上使用 filtered 调用此方法,如下所示:

rs = env['model.model'].search([])
rs.filtered(lambda r: filter_by_day(r.create_date, datetime.datetime.now()))

这将返回您可以显示的过滤记录集。

[1]https://www.odoo.com/documentation/13.0/reference/orm.html#filter

[2]https://book.pythontips.com/en/latest/map_filter.html#filter

【讨论】:

    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多