Odoo 只读字段如何保存到数据库

我用的是Odoo12,要实现字段no选中west,字段name对应存的值是西,其中字段name是只读的,但是只读(readonly)字段默认是不保存到数据库的,我查了资料,要保存的话需要重写create方法和write方法;
保存是保存进去了,但不是保存当前更改的记录,比如字段no从west变成north,字段name保存的西,而不是当前保存的北,从north变成south保存的是北而不是南,我理解的是create方法和write方法是执行时所获取的字段A的值尚未保存,所以是上一次修改的记录。
想请教下这种问题怎么解决。

代码:

class Table_test( model.Model ):
    _name = 'test.Table_test'

    no = fields.Char( string = u"方位", size = 50,
    name = fields.Char( string = u"方位", size = 100, readonly = True )

    @api.model
        def create( self, vals ):
        vals['name'] = self.no.name
        res = super(Table_test, self).create(vals)
        return res
    @api.multi
    def write( self, vals):
        vals['name'] = self.no.name
        res = super(Table_test, self).write(vals)
        return res

1个回答

懂了,不需要重写create方法和write方法,直接在视图里对应的只读字段加上force_save = “1” 就可以

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问