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 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统