def write(self, vals): for record in self: if record.warehouse_state == 'confirm': raise UserError(_('无法编辑已确认的记录。')) elif record.warehouse_state == 'overrule': record.warehouse_state = 'initial' elif 'warehouse_state' in vals and vals['warehouse_state'] != record.warehouse_state and \ record.warehouse_state != 'initial': raise UserError(_('只有初始状态的记录才能修改状态。')) # 定义这个方法之后确认之后驳回不能使用了点击驳回之后显示无法编辑已确认的记录 怎么修改可用让驳回按钮可用
时间: 2024-02-14 13:08:45 浏览: 30
要让驳回按钮可用,需要修改这个方法中的条件判断语句,使得在驳回状态下也能够修改记录。你可以在第5行中添加一个条件,使得在驳回状态下也能够修改记录,例如:
```
def write(self, vals):
for record in self:
if record.warehouse_state == 'confirm':
raise UserError(_('无法编辑已确认的记录。'))
elif record.warehouse_state == 'overrule':
if 'warehouse_state' in vals and vals['warehouse_state'] != 'initial':
raise UserError(_('只有初始状态的记录才能修改状态。'))
else:
record.warehouse_state = 'initial'
elif 'warehouse_state' in vals and vals['warehouse_state'] != record.warehouse_state and \
record.warehouse_state != 'initial':
raise UserError(_('只有初始状态的记录才能修改状态。'))
```
这样修改后,当记录的状态为驳回时,只有在修改状态为初始状态时才能修改记录,其他情况下修改记录都会报错。这样就可以让驳回按钮可用,并且可以修改记录了。