在检查以前的记录是否未处于“开放”状态后,如何针对处于“开放”状态的患者创建新的检查记录。如果存在则显示错误,否则创建新记录。
下面的代码没有正确检查“if record.id:”中的记录是否存在,因此直接引发错误消息。
这是我的代码:
@api.multi
@api.constrains('status', 'patient_id')
def _checkstatus(self):
res = []
for record in self:
if record.id:
if record.status == 'open':
raise ValidationError(_('You can not create new visit until patient checked out !' ))
else:
res = self.status
else:
res = self.status
return res
Run Code Online (Sandbox Code Playgroud)
您必须首先获取所有患者和状态 == 打开的记录。像那样,
self.env['your.model.name'].search([('patient_id', '=', patient_id), ('status', '=', 'open')])
Run Code Online (Sandbox Code Playgroud)
如果找到记录,则引发错误。这里为ex写一个代码。根据您的代码更改名称。
@api.multi
@api.constrains('status', 'patient_id')
def _checkstatus(self):
res = []
modelObj = self.env['your.model.name']
for record in self:
rec = modelObj.search([('patient_id', '=', record.patient_id), ('status', '=', 'open')])
if rec:
raise ValidationError(_('You can not create new visit until patient checked out !' ))
else:
// write a login if there is not found any open record with patient
return res
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5077 次 |
| 最近记录: |