Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
1 ตอบกลับ
10359 มุมมอง

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

Related Posts ตอบกลับ มุมมอง กิจกรรม
1
ม.ค. 19
8945
1
มี.ค. 22
31092
0
เม.ย. 24
1952
4
พ.ย. 23
6050
0
ต.ค. 23
1799