如果任何 order_line 的值为 11,我需要将布尔值设置为 True,但是如果我使用“l.route_id == 11”设置该行,如果我将该行设置为“lambda l”,则它不起作用: l.route_id" 它可以工作,但它可以有不同于 11 的其他数字。route_id 通常将为 Null。
route_id的数据库格式为int4
def _compute_dropship_notes_ind(self):
for order in self:
# Check if any line has dropshipping activated
any_dropship_lines = order.order_line.filtered(lambda l: l.route_id )
#any_dropship_lines = order.order_line.filtered(lambda l: l.route_id == 11)
order.dropship_notes_ind = bool(any_dropship_lines)
如果我使用这条线 -->
any_dropship_lines = order.order_line.filtered(lambda l: l.route_id == 11)
order.dropship_notes_ind 将为 False
但是如果我使用
any_dropship_lines = order.order_line.filtered(lambda l: l.route_id)
order.dropship_notes_ind 将为 True
数据库中该列和该顺序的值为 11 和 Null,是两者的混合。 Route_id 也是外键。
如果我没记错的话,route_id是many2one,所以需要添加.id。
基本上,如果路线的 id 为 11,您想要获取 order_line。
any_dropship_lines = order.order_line.filtered(lambda l: l.route_id.id == 11)
关于数据库结构的另一件事,route_id 列中的数字在您的情况下表示 id 号 11。