【发布时间】:2017-06-22 14:22:31
【问题描述】:
这是我的功能:
@api.multi
def write(self, vals):
if vals['Amount'] > 0:
vals['Amount_date'] = fields.Datetime.now()
record=super(MedicalLab, self).write(vals)
self.env['medical.journal'].create({
'patient_id': record.patient_id,
'cat': record.cat,
'test_type_id': record.test_type_id,
'state_money':record.state_money,
'Amount_in_date':record.Amount_date,
'type_In': "Reste",
'Amount_In':record.Amount,
'user_id': record.user_id,
'type_lev1': "IN",
})
return record
这是错误:
AttributeError: 'bool' 对象没有属性 'patient_id'
编辑:
@api.multi
def write(self, vals):
if vals['Amount'] > 0:
vals['Amount_date'] = fields.Datetime.now()
self.env['medical.journal'].create({
'patient_id': vals['patient_id'],
'cat': vals['cat'],
'test_type_id': vals['test_type_id'],
'state_money':vals['state_money'],
'Amount_in_date':vals['Amount_date'],
'type_In': "Reste",
'Amount_In':vals['Amount'],
'user_id': vals['user_id'],
'type_lev1': "IN",
})
return super(MedicalLab, self).write(vals)
新的错误是:
'patient_id': vals['patient_id'],
KeyError: 'patient_id'
【问题讨论】:
-
嗯
record原来是一个布尔值...你确定super(MedicalLab, self).write(vals)返回一个对象/字典吗?而不仅仅是一个表示成功的布尔值? -
这指向
super(MedicalLab, self).write方法。您似乎期望它返回布尔值以外的其他内容。您是否有权访问其实施或文档? -
修改
MedicalLab后,我需要为medical.journal创建一条记录 -
打印 vals 并检查其中是否存在 Patient_id?