Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
2 ตอบกลับ
9438 มุมมอง

I'm write code for python to inherit res.partner.

This code is when user click save button to update record, it will set state into draft (state = 'draft') if state = approved.

Any idea or clue to write this code?

class res_partner(models.Model):

_inherit = 'res.partner'

print "write procedure inherit awal"

STATE_SELECTION = [
('draft', 'Draft'),
('approved', 'Approved'),

]
state = fields.Selection(STATE_SELECTION, 'Status', readonly=True,
help="Draft Record "
"Approved Record. ",
select=True,default='draft')

def write(self, vals):
if vals.get('state'):
if vals.get('state')=='approved':
state = 'draft'
return super(res_partner, self).write(vals)


it doesn't work.

Thanks. 

อวตาร
ละทิ้ง

Did you get it?

ผู้เขียน

Yup. Thanks Akhil P Sivan

คำตอบที่ดีที่สุด

Hi,

You may try like this to override the write():

    @api.multi
def write(self, vals):

if self.state == 'approved':
vals.update({'state':'draft'})

return super(res_partner, self).write(vals)


อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

You have to update vals dictionary with new values before calling super.

def write(self, vals):
if vals.get('state')=='approved':
vals.update({'state' : 'draft'})
return super(res_partner, self).write(vals)
อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
1
ธ.ค. 18
6773
1
ม.ค. 17
4647
1
เม.ย. 19
4678
5
มิ.ย. 18
8426
1
มี.ค. 18
4269