OpenERP里面有时会遇到这样的情况,我们需要界面上的某个字段设为只读(readonly)的,但是只读的不能写入数据库(但是给出了默认值的除外),这时候怎么办呢?
很当然的会想到重写create方法:
def create(self,cr,uid,vals,context={}):
print vals #打印出这一句会发现vals字典里面的值只有界面上非只读的值
start_time = vals['start_time']
end_time = vals['end_time']
total_days = self.get_total_days(cr,uid,0,start_time,end_time)
vals['number_of_days'] = total_days['value']['number_of_days'] #把只读的值写入vals变量
vals['number_of_hours'] = total_days['value']['number_of_hours'] #把只读的值写入vals变量
concern_id = super(hr_seeed_qingjd, self).create(cr, uid, vals, context)
return concern_id
通过手动把要添加的值添加到vals变量里面,然后通过继承父类的create方法来实现只读值的写入。