在odoo中动态填充引用字段

时间:2015-10-14 08:57:25

标签: openerp odoo odoo-8 openerp-8

我想根据另一个字段(类别)动态填充引用字段(ref),这可能吗?

2 个答案:

答案 0 :(得分:0)

您可以使用 onchange(): -

" onchange"只要用户填写了字段中的值,而不向数据库保存任何内容,机制就为客户端界面提供了一种更新表单的方法。

例如,假设模型有三个字段金额,unit_price和price,并且您希望在修改任何其他字段时更新表单上的价格。要实现这一点,请定义一个方法,其中self表示表单视图中的记录,并使用onchange()对其进行修饰,以指定必须触发哪个字段。您对自己所做的任何更改都将反映在表单上。

<!-- content of form view -->
<field name="amount"/>
<field name="unit_price"/>
<field name="price" readonly="1"/>

# onchange handler
@api.onchange('amount', 'unit_price')
def _onchange_price(self):
    # set auto-changing field
    self.price = self.amount * self.unit_price
    # Can optionally return a warning and domains
    return {
        'warning': {
            'title': "Something bad happened",
            'message': "It was very bad indeed",
        }
    }

希望得到这个帮助。

答案 1 :(得分:0)

您可以通过提供refmodel_name来填充record_id,如下所示:

@api.onchange("template_id")
def _onchange_template_id(self):
    if self.template_id:
        self.ref = "{},{}".format(self.env.context["active_model"],  
                                  self.env.context["active_id"])