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
10185 Widoki

Hi,

I'm wondering whether it is necessary to use @api.one or @api.multi in all methods of a model?.

In my case, I have implemented a workflow. In this one, I have built a transition that only triggers if a condition is evaluated to True.

<record id="coming_soon_to_discontinued_end_date" model="workflow.transition">
<field name="act_from" ref="state_coming_soon"/>
<field name="act_to" ref="state_discontinued"/>
<field name="condition">end_date_reached()</field>
</record>

The condition is evaluated through a method in my model:

class Product(models.AbstractModel):
_name = 'sdicrm.product'
...
def end_date_reached(self):
end_date = fields.Date.from_string(self.end_date_sale)
return end_date < date.today()

What I don't know is whether I have to use @api.one decorator in the 'end_date_reached' method:

@api.one
def end_date_reached(self):
end_date = fields.Date.from_string(self.end_date_sale)
return end_date < date.today()

Thank you.

Awatar
Odrzuć
Najlepsza odpowiedź

Hi,

It is not mandatory. If you want to use Odoo V8 API then you need to use @api.one or @api.multi. Otherwise no need to use it.

Just make code as like OpenERP V7 without any decorator. thats it.

 

Awatar
Odrzuć
Autor

Hi, but I don't want to use the old API but the new one. What I don't know is whether I have to use @api.one or @api.multi in all of my methods of my module using the new API.

You need to use @api.one and @api.multi in appropriate case. Please have a look on the doc. http://odoo-new-api-guide-line.readthedocs.org/en/latest/decorator.html#api-one

Powiązane posty Odpowiedzi Widoki Czynność
1
sty 19
8797
1
mar 22
30932
0
kwi 24
1821
4
lis 23
5854
0
paź 23
1666