跳至内容
菜单
此问题已终结
1 回复
10230 查看

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.

形象
丢弃
最佳答案

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.

 

形象
丢弃
编写者

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

相关帖文 回复 查看 活动
1
1月 19
8834
1
3月 22
30976
0
4月 24
1842
4
11月 23
5893
0
10月 23
1695