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

Hello,

Is there anyway I can force odoo to delete all the cache? I am seeing that some of the changes I am making are not apprearing and I found out it is a cache issue, is there something I can do about it besides cleaning my browser cache?

Thanks!

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

Hello,

How invalidate_all()  is supposed to be used ? In V11 CE, I am trying to call :

self.env.invalidate_all()

in write overload. It causes this error :

AttributeError: 'Environment' object has no attribute 'invalidate_all'
Thanks for any information.

Edit :
found another way to solve my problem. Record rules based on many2many relationship were not applied when many2many fields values were modified.

This override solved my problem, don't know if I'm doing right :
@api.multi 
def write(self, vals): 
ret = super(MyModel, self).write(vals)
if 'my_many2many_field' in vals:
    self.env['ir.rule'].clear_caches()
return ret

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

I assume you are talking about the ORM cache.

Clearing caches can be performed using the invalidate_all() method of the Environment object.

https://www.odoo.com/documentation/10.0/reference/orm.html#low-level-sql


อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

clearing caches could be done using the function clear_caches, you can inherit the function write and call it if the targeted field gets changed

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
0
มี.ค. 15
3839
3
ก.ค. 25
8650
1
พ.ค. 25
941
0
ม.ค. 24
1674
0
ก.ค. 23
2312