Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
3859 Zobrazení

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.

Avatar
Zrušit

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})

Nejlepší odpověď

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

Avatar
Zrušit

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})

Related Posts Odpovědi Zobrazení Aktivita
0
čvc 25
242
2
čvc 22
11324
1
zář 24
6919
2
říj 21
4102
1
zář 24
3690