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

Hi all, I'm trying to change the value of a field from another class as you can see in the example below:


class A(models.Model):

status = fields.Boolean(default=False)


and my second class is TransientModel which is named wizard. I want to change the value of the field(status) with a button that is lined in my second class. I have to set my second class as a wizard for project necessity.

I have examined write and self.env functions but couldn't change the value for the field.

Thanks in advance.

頭像
捨棄

You can refer Lead lost in default odoo addons

in wizard:
def action_lost_reason_apply(self):
leads = self.env['crm.lead'].browse(self.env.context.get('active_ids'))
return leads.action_set_lost(lost_reason=self.lost_reason_id.id)

in class A
def action_set_lost(self, **additional_values):
if additional_values['lost_reason']:
self.write({'status':True})

最佳答案

Hello KorayK,


You can write the below method in your second class (TransientModel) and pass this method to the button in XML of the second class

Find code in Comment.

Thanks & Regards,
Email: odoo@aktivsoftware.com
Skype: kalpeshmaheshwari

頭像
捨棄

def button_click(self):
if self._context.get('active_id', False):
record = self.env["Your model name"].browse(self._context.get('active_id'))
if record:
record.update({'status': True})

相關帖文 回覆 瀏覽次數 活動
0
7月 25
242
2
7月 22
11325
1
9月 24
6920
2
10月 21
4108
1
9月 24
3690