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

ir.actions.act_window导致标签无法点击的Odoo技术求助

嘿,作为刚接触Odoo和Python的新手,遇到这种关联视图的问题真的太常见了!我来帮你一步步拆解这个“能看到患者专属日历但没法打开详情”的问题,咱们从最可能的原因开始排查:

1. 先检查「Show Calendar」按钮的动作配置

这是最容易出问题的地方——你的按钮跳转动作可能没正确配置视图类型,或者过滤逻辑影响了详情打开。

首先看你按钮的XML定义,是不是像下面这样传递了上下文,并且关联了正确的动作:

<button name="%(patient.action_patient_calendar)d" string="Show Calendar" type="action" context="{'search_default_patient_id': active_id}"/>

然后对应的动作(ir.actions.act_window)一定要包含form视图模式,不然点击日历事件时没有可跳转的详情页:

<record id="action_patient_calendar" model="ir.actions.act_window">
    <field name="name">Patient Calendar</field>
    <field name="res_model">calendar.event</field>
    <!-- 这里必须写calendar,form,只写calendar的话只能看日历视图,没法打开详情 -->
    <field name="view_mode">calendar,form</field>
    <!-- 用domain过滤当前患者的日历事件,和上下文二选一就行 -->
    <field name="domain">[('patient_id', '=', active_id)]</field>
</record>

重点:view_mode里如果没有form,就算你点烂日历事件也不会弹出详情页!

2. 确认Calendar模型和Patient模型的关联是否正确

你得确保calendar.event模型里真的有和你的患者模型关联的字段,不然过滤出来的日历其实是“假关联”,点击时会因为找不到关联关系报错。

在你的patient模块的models文件里,应该继承calendar.event并添加关联字段:

from odoo import models, fields

class CalendarEvent(models.Model):
    _inherit = 'calendar.event'

    # 这里的patient要对应你自定义的患者模型的技术名称
    patient_id = fields.Many2one('patient', string="Patient")

如果没加这个字段,那你的过滤逻辑根本不生效,甚至可能导致视图加载异常,自然打不开详情。

3. 别忘检查权限设置!

新手很容易忽略权限——你的患者模块权限组有没有给calendar.event的读写权限?

打开你模块下的security/ir.model.access.csv,确认有类似这样的配置:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_calendar_event_patient_user,calendar.event.patient.user,model_calendar_event,patient.group_patient_user,1,1,1,0

如果没有这个权限项,就算你能看到日历事件,点击时也会因为权限不足无法打开详情页(可能没反应,或者后台报错)。

4. 最后排查前端视图问题

如果前面三步都没问题,那可能是日历视图的前端配置有问题。比如你自定义了日历视图,覆盖了默认的calendar.event的form视图,导致加载失败。

可以先切换到列表视图(如果你的动作里加了tree模式),看看能不能打开详情:

  • 如果列表视图能打开详情,那就是日历视图的配置问题,检查你自定义的calendar视图XML有没有正确继承默认视图,有没有写错字段。
  • 如果列表也打不开,那大概率是模型关联或者权限的问题,回到前面再仔细检查。

慢慢来,新手遇到这种问题很正常,按这个顺序排查基本能解决!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:13:33