x805050398 2019-04-06 08:56 采纳率: 0%
浏览 951

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条回答 默认 最新

  • x805050398 2019-04-06 09:38
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog