如何使用many2one设置域

时间:2017-02-25 16:32:37

标签: python openerp

我有一个链接到event.event的many2one,名为xx_event_id。在event.event中,我创建了一个指向xx_weeks的链接,这是一个单独的模型,可以保存周列表。然后,这些周的名称也链接到名为xx_week_name的模型。

我试图在xx_week_name上创建域名。当我选择一个事件时,我只希望它显示事件中的周名称。

所以我的xml看起来像这样:

<field name="xx_week_name" domain="[('id', 'in', xx_event_id.xx_weeks.name)]"/>

然而它却出错:

Uncaught Error: AttributeError: object has no attribute 'xx_weeks'

1 个答案:

答案 0 :(得分:0)

域名是在javascript端实现的,在那里你不能使用Odoo的智能记录('dot'表示法)。

如果要使用关系字段设置域,可以执行的操作如下:

1)声明一个相关字段,将该名称“拉”为关系字段中的字符串 week_name = fields.Char(related ='xx_event_id.xx_weeks.name')

2)在视图中插入该字段为不可见。通过这种方式,它不会改变我们的观点,我们仍然可以访问它。

3)更改关系字段中的过滤器

这应该可行,但您可能在您的域中出现了逻辑错误。您检查VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh /bin/bash -c 'make yesterday_stats'可能是否需要不同的内容,例如[('id', 'in', xx_event_id.xx_weeks.name)]如果是,请相应修改上述示例。