ODOO 18免费版网站端无法添加产品描述字段的解决方案咨询
在Odoo 18免费版中为网站产品页面添加自定义字段的解决方法
1. 定位网站产品详情页的视图
Odoo 18的网站产品详情页视图归属website_sale模块,核心模板ID为website_sale.product,对应原生XML文件路径是website_sale/views/templates.xml。
你可以通过开发者模式快速确认:
- 启用开发者模式后,打开任意产品的网站详情页
- 点击页面右上角的编辑视图按钮,即可查看当前页面对应的模板信息,确定继承目标
2. 通过自定义模块扩展视图(不修改原生代码)
不要直接改动Odoo原生模块,创建自定义模块来扩展视图,步骤如下:
- 在自定义模块的
views目录下新建XML文件,比如命名为website_product_custom_field.xml - 写入以下继承代码(假设你的自定义字段为
x_custom_description):
<odoo> <template id="website_product_custom_description" inherit_id="website_sale.product" name="Add Custom Description to Product Page"> <!-- 示例:在原有产品描述区块后插入自定义字段 --> <xpath expr="//div[@id='product_details']/div[contains(@class, 'oe_product_description')]" position="after"> <div class="mt-4"> <h5 class="mb-2">自定义描述</h5> <p t-esc="product.x_custom_description"/> </div> </xpath> </template> </odoo>
- 在模块的
__manifest__.py文件中,将这个XML文件添加到data列表,确保模块加载时能识别:
'data': [ # 其他已有配置文件... 'views/website_product_custom_field.xml', ],
3. 确认产品模型字段定义正确
确保你已在产品模型中正确添加自定义字段,比如在自定义模块的models/product.py中:
from odoo import models, fields class ProductTemplate(models.Model): _inherit = 'product.template' x_custom_description = fields.Text(string='自定义描述')
更新模块后,可在开发者模式的产品表单视图中确认字段已同步到数据库。
4. 测试生效
升级你的自定义模块,刷新网站产品详情页,即可看到新增的自定义描述字段。
内容的提问来源于stack exchange,提问作者Pénélope Visse
相关产品推荐
相关产品推荐

