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
相关产品推荐
相关产品推荐

