我正在定制一个Odoo电子商务网站,我需要通过URL参数动态修改产品详细信息页面中的add_qty参数。我正在扩展 WebsiteSale 类来实现此目的。
这是我的代码片段:
class WebsiteSaleCustom(WebsiteSale):
def _prepare_product_values(self, product, category, search, **kwargs):
values = super()._prepare_product_values(product, category, search, **kwargs)
values['add_qty'] = int(kwargs.get('add_qty', 1))
return values
此解决方案在首次加载产品详细信息页面时按预期工作。但是,当尝试动态更新 add_qty 参数时,就会出现问题。
任何有关如何实现这一目标的见解或建议将不胜感激。谢谢您的帮助!
要解决 Odoo 由于缓存而获取过时或不正确数据的相关问题,您可以在应用解决方案之前使用方法
request.env.registry.clear_cache()
。此方法会清除缓存,确保 Odoo 获取最新数据。
from odoo.http import request
from odoo.addons.website_sale.controllers.main import WebsiteSale
class WebsiteSaleCustom(WebsiteSale):
def _prepare_product_values(self, product, category, search, **kwargs):
request.env.registry.clear_cache()
values = super()._prepare_product_values(product, category, search, **kwargs)
values['add_qty'] = int(kwargs.get('add_qty', 1))
return values