比较 Odoo 中外键的值

问题描述 投票:0回答:1

如果任何 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 也是外键。

python mysql odoo
1个回答
0
投票

如果我没记错的话,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。

© www.soinside.com 2019 - 2024. All rights reserved.