есть модель
class project_tag(models.Model):
_name = 'project_tags.project_tag'
_description = 'project_tag'
name = fields.Char(string='Name', required=True, size=64)
Тогда есть модель проекта
class project(models.Model):
_inherit = 'project.project'
project_tag_ids = fields.Many2many(
'project_tags.project_tag',
'project_project_tag_ids_rel',
'project_id',
'project_tag_id',
string='Tags')
И наконец модель
class ProjectTask(models.Model):
"""docstring"""
_inherit = 'project.task'
tag_ids = fields.Many2many(
'project_tags.project_tag',
'project_project_tag_ids_rel',
'project_id',
'project_tag_id',
string='Tags',
domain="[('project_id', 'in', project_id)]") .
Представление для задачи проекта (модель ProjectTask) содержит поле
<field name="tag_ids" widget="many2many_tags" options="{'no_create_edit': True}"/>
Пользователь хотел бы видеть в tag_ids только те теги, которые настроены для проекта, к которому относится эта задача. Для проекта данной задачи теги не настроены, поэтому tag_ids должен быть пустым, но это не так: (.
Теги проекта (в этом примере он пуст).
Я надеюсь, что этот домен поможет. К сожалению, когда определение поля tag_ids с доменом
tag_ids = fields.Many2many(
'project_tags.project_tag',
'project_project_tag_ids_rel',
'project_id',
'project_tag_id',
string='Tags',
domain="[('project_id', 'in', project_id)]") .
пользователь видит ошибку
ValueError: Invalid field u'project_id' in leaf "<osv.ExtendedLeaf: (u'project_id', u'=', 10) on project_tags_project_tag (ctx: )>"
При отсутствии домена отображаются все теги
tag_ids = fields.Many2many(
'project_tags.project_tag',
'project_project_tag_ids_rel',
'project_id',
'project_tag_id',
string='Tags')
Пользователь ожидает видеть только те теги, которые назначены для проекта.
Менеджер проекта может в окне проекта добавить теги в проект. Пользователь, который редактирует или создает задачу, должен иметь возможность выбирать только те теги, которые добавлены для проекта.
Как я могу изменить код так, чтобы tag_ids отображал только те теги, которые относятся к project_id, к которому относится задача?