Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
3842 Widoki

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.

Awatar
Odrzuć

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

Najlepsza odpowiedź

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

Awatar
Odrzuć

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

Powiązane posty Odpowiedzi Widoki Czynność
0
lip 25
239
2
lip 22
11312
1
wrz 24
6909
2
paź 21
4073
1
wrz 24
3668