首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当在Odoo12中创建了模型B的新实例(将many2one字段设置为模型A )时,如何更改模型A中的布尔值?

在Odoo12中,要在模型B中创建新实例并更改模型A中的布尔值,可以按照以下步骤进行操作:

  1. 首先,确保已经在模型B中定义了many2one字段,将其设置为模型A。例如,在模型B的Python文件中,可以添加如下代码:
代码语言:txt
复制
class ModelB(models.Model):
    _name = 'model.b'
    
    field_a = fields.Many2one('model.a', string='Field A')
  1. 接下来,在模型B的视图文件中,确保已经添加了一个many2one字段的视图部件,用于选择模型A的实例。例如,在模型B的视图文件中,可以添加如下代码:
代码语言:txt
复制
<record id="view_model_b_form" model="ir.ui.view">
    <field name="name">model.b.form</field>
    <field name="model">model.b</field>
    <field name="arch" type="xml">
        <form>
            <sheet>
                <group>
                    <field name="field_a"/>
                </group>
            </sheet>
        </form>
    </field>
</record>
  1. 然后,在模型B的Python文件中,可以通过重写create()方法来更改模型A中的布尔值。例如,在模型B的Python文件中,可以添加如下代码:
代码语言:txt
复制
class ModelB(models.Model):
    _name = 'model.b'
    
    field_a = fields.Many2one('model.a', string='Field A')
    
    @api.model
    def create(self, vals):
        record = super(ModelB, self).create(vals)
        
        # 获取模型A的实例
        model_a = self.env['model.a'].browse(vals.get('field_a'))
        
        # 更改模型A中的布尔值
        model_a.write({'boolean_field': True})
        
        return record

在上述代码中,我们通过browse()方法获取了模型A的实例,并使用write()方法更改了模型A中的布尔值。

  1. 最后,可以在模型A的视图文件中,确保已经添加了一个布尔字段的视图部件,用于显示和编辑该布尔值。例如,在模型A的视图文件中,可以添加如下代码:
代码语言:txt
复制
<record id="view_model_a_form" model="ir.ui.view">
    <field name="name">model.a.form</field>
    <field name="model">model.a</field>
    <field name="arch" type="xml">
        <form>
            <sheet>
                <group>
                    <field name="boolean_field"/>
                </group>
            </sheet>
        </form>
    </field>
</record>

通过以上步骤,当在Odoo12中创建了模型B的新实例,并选择了相应的模型A实例时,模型A中的布尔值将会被更改为True。

请注意,以上答案仅供参考,具体实现可能需要根据实际情况进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

16分8秒

人工智能新途-用路由器集群模仿神经元集群

领券