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

Odoo项目任务域配置:按条件显示指定项目子任务

正确的Odoo Domain配置方案

需求回顾

选中项目时需显示该项目的所有普通任务,仅当项目的display_under_tasks字段为True时,才同时显示该项目的子任务。

问题分析

你之前的Domain逻辑组合混乱,没有把「当前项目任务」作为核心筛选条件,导致出现显示范围错误或任务缺失的问题。

正确Domain配置

核心逻辑是先限定当前项目的任务范围,再区分普通任务和符合条件的子任务,对应的Domain为:

[
    ('display_project_id', '=', active_id),
    '|',
    ('parent_id', '=', False),
    ('project_id.display_under_tasks', '=', True)
]

逻辑解释

  • 第一行('display_project_id', '=', active_id):确保只筛选当前选中项目的任务,这是基础范围;
  • '|'表示逻辑「或」,连接两个分支:
    • 分支1:('parent_id', '=', False):显示当前项目的所有普通任务(无父任务);
    • 分支2:('project_id.display_under_tasks', '=', True):当当前项目允许显示子任务时,显示该项目的所有子任务(有父任务的任务)。

完整配置代码

替换原domain字段内容即可:

<record id="project.act_project_project_2_project_task_all" model="ir.actions.act_window">
    <field name="name">Tasks</field>
    <field name="res_model">project.task</field>
    <field name="view_mode">kanban,tree,form,calendar,pivot,graph,activity</field>
    <field name="domain">[
        ('display_project_id', '=', active_id),
        '|',
        ('parent_id', '=', False),
        ('project_id.display_under_tasks', '=', True)
    ]</field>
    <field name="context">{ 'default_project_id': active_id, 'show_project_update': True }</field>
    <field name="search_view_id" ref="project.view_task_search_form"/>
    <field name="help" type="html">
        <p class="o_view_nocontent_smiling_face">
            No tasks found. Let's create one!
        </p>
        <p>
            Keep track of the progress of your tasks from creation to completion.
            <br/>
            Collaborate efficiently by chatting in real-time or via email.
        </p>
    </field>
</record>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:35:11