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