首页 > 编程问答 >自定义菜单未显示在 odoo 门户视图上

自定义菜单未显示在 odoo 门户视图上

时间:2024-07-25 09:57:02浏览次数:12  
标签:python odoo

我想在 odoo 门户视图上显示自定义菜单。 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <data>
      <template id="portal_my_home_loan" name="Partner Loan"
        customize_show="True" inherit_id="portal.portal_my_home">
        <xpath expr="//div[hasclass('o_portal_docs')]" position="inside">
          <t t-call="portal.portal_docs_entry">
            <t t-set="title">Partner Loan</t>
            <t t-set="url" t-value="'/my/loan'" />
            <!-- <t t-set="placeholder_count" t-value="'loan_count'" /> -->
          </t>
        </xpath>
      </template>
  </data>
</odoo>

python 文件:

from odoo.addons.portal.controllers.portal import CustomerPortal

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

已添加 portal 至清单文件中的依赖项以及清单文件中的 template.xml。在我的用户门户视图上仍然看不到菜单。 知道我哪里出了问题吗?


你的代码看起来不错,但可能有一些原因导致自定义菜单没有显示在 Odoo 门户视图上:

  1. 缓存问题: Odoo 会缓存视图和其他数据以提高性能。在进行更改后,请尝试清除浏览器缓存或使用 隐身模式/私人浏览模式 访问门户,以确保看到的是最新版本。

  2. 视图继承错误: 确保你的 XPath 表达式 //div[hasclass('o_portal_docs')] 正确定位到你想插入菜单的位置。你可以使用浏览器的开发者工具检查门户页面的 HTML 结构,以确认 XPath 表达式是否正确。

  3. 模块未升级/安装: 确保你的自定义模块已正确安装并升级。你可以前往“应用”菜单,搜索你的模块并检查其状态。

  4. 权限问题: 确保当前登录的用户有权访问你想要显示的菜单。检查与菜单相关联的模型和操作的访问权限。

  5. 缺少 t-if 条件: 如果你在 t-call 中使用了 t-if 条件来控制菜单的显示,确保条件的值为 True

以下是针对每个可能问题的解决方法:

  1. 清除浏览器缓存: 大多数浏览器允许你通过快捷键(例如 Ctrl+Shift+Del 或 Cmd+Shift+Del)清除缓存。

  2. 验证 XPath 表达式: 使用浏览器的开发者工具(通常按 F12 键打开)检查门户页面的 HTML 源代码。找到你想插入菜单的位置,并验证你的 XPath 表达式是否能选择到正确的元素。

  3. 升级/安装模块: 在 Odoo 中,前往“应用”菜单。如果你的模块显示为“需升级”,请点击“升级”按钮。如果模块未安装,请先安装它。

  4. 检查访问权限: 进入“设置”菜单,然后进入“用户和公司” -> “用户”。选择你当前登录的用户,并检查其所属的用户组。确保该用户组拥有访问你想要显示的菜单所需的所有权限。

  5. 检查 t-if 条件: 如果你使用了 t-if 条件,确保条件的值为 True 。例如,如果你使用 t-if="loan_count" ,请确保 loan_count 变量的值不为 0 或 False

如果以上方法都无法解决问题,请提供以下信息以便进一步分析:

  • 你使用的 Odoo 版本
  • 完整的错误日志(如果有)
  • 你尝试访问门户页面的 URL
  • 你自定义模块的完整代码

标签:python,odoo
From: 75688248

相关文章

  • python webbrowser.open 不使用默认浏览器
    对你们来说这是一个好奇的家伙..在我的python程序中webbrowser.open('etc..')打开MicrosoftEdge现在奇怪的是,我在与opensChrome(我的默认值)稍有不同的文件夹中还有另一个python程序关于发生了什么的任何想法吗?!!(我知道有人问过类似的问题,但......
  • 如何在 Mac 上运行 Python 文件来读取 txt 文件并将其写入外部硬盘?
    我目前有一个充满了我想阅读的epub的文件夹,一个我已经阅读过并想再次阅读的epub的文件夹,以及一个相应的文件,其中每个文件都有epub文件的名称。问题是,这些文件夹仅位于我的外部硬盘上。我想要做的是让我的脚本解析这些文件夹中的epub列表,并在我的下载文件夹中创建最新的副......
  • 深入探索:使用Python进行网站数据加载逻辑分析与请求
    作为一名资深的Python程序员,我经常需要从网站中提取数据以供分析或进一步处理。这项任务涉及到对网站数据加载逻辑的深入分析,以及使用Python进行高效的网络请求。在本文中,我将分享如何分析网站的数据加载方式,并使用Python的requests库来模拟浏览器行为,获取所需的数据。网站......
  • 如何将 Python 列表添加到 Excel 中已有值的列的末尾?
    我目前正在尝试编写一个程序,将值附加到列表中,然后将这些值添加到Excel数据表中的列中。每次运行该程序时,我都希望在同一列的末尾添加更多值。所以我不确定如何解决这个问题,而且我在网上找到的其他答案也没有取得多大成功。以下是使用openpyxl库在Python中将......
  • 如何学习Python:糙快猛的大数据之路(学习地图)
    在这个AI和大数据主宰的时代,Python无疑是最炙手可热的编程语言之一。无论你是想转行还是提升技能,学习Python都是一个明智之选。但是,该如何开始呢?今天,让我们聊聊"糙快猛"的Python学习之道。什么是"糙快猛"学习法?"糙快猛"学习法,顾名思义,就是:糙:不追求完美,允许存......
  • Python 中 __get__ 方法的内部原理
    我正在摆弄描述符,结果碰壁了。我以为我可以像使用任何其他方法一样直接调用它,但显然,它似乎不一致或者我遗漏了一些东西。假设我有一个用作描述符的坐标类:|||还有一个Point类,它有2个坐标属性:classCoordinate:def__set_name__(self,owner,name):self._na......
  • 使用带有私钥的云前端生成签名 URL 的问题..使用 Python 3.7 为带有空格的 S3 对象生
    我在使用Python3.7为S3对象生成签名URL时遇到问题。具体来说,键中带有空格的对象的URL会导致“访问被拒绝”错误,而没有空格的对象的URL通常工作正常。但是,并非所有不带空格的对象都能正常工作,带空格的对象始终会失败。fromdatetimeimportdatetime,timedeltaimpo......
  • 有没有更好的方法来在存储库中的一组 python 程序之间共享公共代码
    当我想要快速、轻松地做许多不同的事情时,我会选择Python-即我总是会得到许多Python“程序”-例如一组脚本-或者如果我正在玩一些东西,一堆测试程序等-即始终是许多不同程序的松散集合。但是,我会分享某些内容。例如,如果我正在使用AI-我可能有30个左右完全不相......
  • 如何在Python中从两个不同长度的列表创建DataFrame,为第二个列表中的每个值重复第一个
    我是一个超级初学者,所以请耐心等待。我觉得这应该很容易,但我无法弄清楚。我不确定是否应该创建两个列表,然后将它们组合起来,或者是否有办法以这种方式直接创建DataFrame。我需要一列包含这些值:df=pd.DataFrame({'x1':np.linspace(-2.47,2.69,num=101)})然后我将值A......
  • Python multiprocessing.connection.Connection 的行为不符合规范
    根据python规范,recv()pythonConnection的方法,(从multiprocessing.Pipe()返回,当管道为空且管道的另一端关闭时抛出EOFError(这里参考:https://docs.python.org/3.9/library/multiprocessing.html#multiprocessing.connection.Connection.re......