コンテンツへスキップ
メニュー
この質問にフラグが付けられました

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
5574
2
2月 23
4261
1
1月 21
5413
1
12月 19
2899
1
8月 24
2949