跳至內容
選單
此問題已被標幟
1 回覆
7587 瀏覽次數

Hallo All,

Is there any way to change field value from Wizard?

eg: I have model hr.employee:

            state = fields.Selection(selection=[('active','Active'), ('inactive','Inactive')])

I have transient model hr.employee.wizard:

            state = fields.Selection(selection=[('active','Active'), ('inactive','Inactive')])


The thing is, i need to change the state from Wizard(hr.employee.wizard) and it also change the state in hr.employee.
I use @api.onchange but it didn't work.


Please advise.

頭像
捨棄
最佳答案

Hi,

Try to do it using a button click, using the active_ids from the wizard model you can get the record id of the main model, using the browse get the corresponding record and you can update the record using the write operation.

If you install the CRM, you can see similar implementation in Mark as Lost button.


Thanks

頭像
捨棄
作者

Thanks Niyas,

I learn it and its work fine with the model hr.employee.

this time i want to change the state only from 'open' to 'done' in model hr.contract from wizard when the state in wizard is 'inactive'

I try this in my wizard:

contract = self.env['hr.contract'].browse(self.env.context.get('active_ids'))

if contract.state == 'open':

contract.write({'state': 'done'})

but it return an error = 'The record has been deleted hr.contract(id), user(id)

do we can make domain in browse get function?

or something else, please advice

相關帖文 回覆 瀏覽次數 活動
5
12月 22
5497
2
2月 23
4109
1
1月 21
5294
1
12月 19
2844
1
8月 24
2768