更新:Odoo项目任务标签域
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新:Odoo项目任务标签域相关的知识,希望对你有一定的参考价值。
Project的任务可以有很多标签。现在,当用户创建任务时,他可以从所有标签中进行选择。但他希望只能从那些用于该项目的标签中选择标签。
我应该在字段“标记”(在表单上)使用什么域规则,以便在创建新项目任务时让用户查看(并最终选择)用户创建任务的项目中使用的那些标记?
What I tried and didn't work.
我有以下代码
class InheritedProjectTask(models.Model):“”“docstring”“”_ inherit ='project.task'
@api.onchange('project_id')
def onchange_project(self):
"""docstring"""
tag_ids = []
if self.project_id:
for task in self.project_id.task_ids:
tag_ids += task.tag_ids.ids
return {'domain': {'tag_ids': [('id', 'in', tag_ids)]}}
安装此代码。我打开一个项目并单击“创建”以打开任务创建表单(新“project.task”模型的对象的表单)。在该表单上,我单击下拉“标签”以列出项目的可能“标签”(“项目的可能标签”是用于创建任务的项目的任何任务的所有标签)。我看到了所有的标签。这不是想要的。
更新:我可以在“标签”下拉列表中看到(在我将鼠标悬停在“标签”下拉列表时调试模式下)有效域是id,in,4,5,6,7,8,9,10,11 ,12,13,14,18,19,20,22,23,24,25,26,27,28,5,4,5,35。这就是问题所在:它不仅仅是从这个项目的任务中获取标签。来自其他项目任务的标签也显示为不需要的。
如何将所有标签包含在当前项目的任务中?
标签模型有一个名称字段,因此您可以根据它添加域规则。例如,名称以或以名称结尾等开头。
但是你可以在project_id
中添加一个新字段(project.tags
)来指定标签属于哪个项目,然后在任务表单中你可以使用例如[('project_id', '=', project_id)]
。
以上是关于更新:Odoo项目任务标签域的主要内容,如果未能解决你的问题,请参考以下文章
如何在文本区域标签中的特定光标位置插入选择标签下拉值作为文本片段?