You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo门户视图自定义菜单不显示,已做配置仍无效求助

Odoo门户自定义菜单不显示的排查要点

针对你提供的配置,以下是可能导致自定义菜单无法显示的几个原因及解决方法:

1. 未启用门户定制选项

你的模板设置了customize_show="True",这意味着该菜单默认不会显示,需要在门户的定制界面手动启用:

  • 登录用户门户,点击页面右上角的「定制」按钮
  • 在弹出的面板中找到「Partner Loan」选项并勾选保存

2. XPath定位不准确

Odoo版本不同,portal_my_home模板中的结构可能有变化,//div[hasclass('o_portal_docs')]可能无法匹配到正确的元素。可以尝试修改XPath表达式:

  • 替换为更精确的定位,比如//div[@id='o_portal_docs'](如果元素有ID)
  • 或者使用模糊匹配://div[contains(@class, 'o_portal_docs')]

3. 未正确关联计数变量

你注释掉了placeholder_count的设置,而portal_docs_entry模板默认会根据计数判断是否显示菜单(计数为0可能会隐藏)。即使Python中设置了loan_count=1,也需要在模板中关联这个变量:

<t t-set="placeholder_count" t-value="loan_count" />

注意不要加引号,直接使用变量名而非字符串。

4. 未定义对应路由

你设置了url="'my/loan'",但如果Python控制器中没有定义对应的路由,可能影响菜单渲染逻辑。需要在控制器中添加路由:

from odoo.addons.portal.controllers.portal import CustomerPortal
from odoo.http import route, request

class PortalAccount(CustomerPortal):
    def _prepare_home_portal_values(self, counters):
        values = super()._prepare_home_portal_values(counters)
        values['loan_count'] = 1
        return values

    @route(['/my/loan'], type='http', auth="user", website=True)
    def portal_my_loan(self):
        # 添加入口视图逻辑,示例:
        return request.render('your_module_name.portal_my_loan_template', {})

5. 模块更新不彻底

确保完成以下操作:

  • 在应用列表中找到自定义模块,点击「升级」
  • 清除浏览器缓存,或使用无痕模式访问门户
  • 确认manifest文件中正确引入XML文件,示例:
'data': [
    'views/your_template_file.xml',
],

6. 用户权限缺失

检查当前登录的门户用户是否有访问贷款相关数据的权限,若没有对应模型的访问权限,菜单可能会被隐藏。需在后台给门户用户组添加对应权限。


内容的提问来源于stack exchange,提问作者Madhav Parikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 17:45:29