0

如何按今天、本月和上个月过滤 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])
4

1 回答 1

0

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

其工作方式完全相同,filter可以使用 python 方法 [2]。

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

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

filtered您可以像这样在 Recordset 上使用此方法:

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

于 2020-03-03T15:09:03.777 回答