首页
学习
活动
专区
工具
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。

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

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

相关·内容

ODOO配置文件/etc/odoo.conf配置详解

Odoo是一个多租户系统:一个Odoo系统可以运行并服务于多个数据库实例。它也是高度可定制的,定制(从加载的模块开始)取决于“当前数据库”。 作为登录公司用户使用后端(web客户端)时,这不是问题:登录时可以选择数据库,然后加载自定义设置。 但是,对于没有绑定到数据库的未登录用户(门户、网站)来说,这是一个问题:Odoo需要知道应该使用哪个数据库来加载网站页面或执行操作。如果没有使用多租户,这不是问题,只有一个数据库可以使用,但是如果有多个数据库可以访问,Odoo需要一个规则来知道它应该使用哪一个。 这是--db filter的目的之一:它指定如何根据所请求的主机名(域)选择数据库。该值是一个正则表达式,可能包括动态注入的主机名(%h)或访问系统所通过的第一个子域(%d)。 对于生产中托管多个数据库的服务器,特别是在使用网站时,必须设置dbfilter,否则许多功能将无法正常工作。

02
领券