Skip to Content
Menu
This question has been flagged

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.

Avatar
Discard
Best Answer

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.

 

Avatar
Discard
Author

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

Related Posts Replies Views Activity
1
Jan 19
7436
1
Mar 22
29259
0
Apr 24
396
4
Nov 23
4242
0
Oct 23
377