python - 如何在odoo中根据另一个Many2one字段的值过滤一个Many2one字段

标签 python odoo odoo-12

我的模型中有这些字段:

seller = fields.Many2one('res.partner', string="Select Seller",domain="[('supplier','=',True)]")
products= fields.Many2one('product.template', string="Select Product" )

现在,我需要在用户选择卖家时过滤第二个字段(第一个字段) 如何设置域名 onchange。

我正在尝试做类似的事情,

@api.onchange('seller')
    def onchange_field_seller(self):
        res = {}
        if self.seller:
            # return {'domain':{'product':[//what do i add here//]}}
        return res

我正在使用 Many2many 字段在卖家创建表单中创建产品。

product_details = fields.Many2many('product.template',string="Products")

(请注意,包含此字段的表单与上一问题中的表单不同)。 我试图仅获取创建卖家条目时创建的那些产品条目。我真的很困惑,我该如何完成此操作?

最佳答案

在您的情况下,您不能使用“动态”域,而只能在产品 ID 上使用预定义域。

@api.onchange('seller')
def onchange_field_seller(self):
    if self.seller:
        # filter products by seller
        product_ids = self.seller.product_details.ids
        return {'domain': {'product': [('id', 'in', product_ids)]}}
    else:
        # filter all products -> remove domain
        return {'domain': {'product': []}}

关于python - 如何在odoo中根据另一个Many2one字段的值过滤一个Many2one字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56666168/

相关文章:

python - 为什么我的 Pandas 数据框选择的形状是错误的

python-3.x - 如何通过python代码创建和发送邮件而不用在odoo中的xml中创建邮件模板

python - 如何激活 OpenERP 开发者模式

python - Odoo 如何制作自定义报告,AttributeError

python - 如何在 one2many 弹出表单中加载另一个表的列表以将其添加到 odoo 12 中的主表单?

Odoo 12 报告样本

python - 从 pandas 访问器访问 pandas DataFrame

python - 如何将参数从服务器上的一个 python 脚本传递到另一个?

python - webdriver.Firefox() 与 selenium 的错误

javascript - 使用js调用系统参数到FullCalendar