Openerp 是否可以根据条件更改字段的关系?

Openerp 是否可以根据条件更改字段的关系?,openerp,odoo-8,openerp-8,Openerp,Odoo 8,Openerp 8,假设有一个字段“a”,并且有一个字段声明 A:fields.many2one('new.new') 然后根据任何条件,相同的字段应该得到不同的关系,如 if condition: A:fields.many2one(old.old) 有可能吗?AFAIK答案是否定的。您不能在运行时更改m2o字段的comodel。需要更改外键和其他IR关系,这些关系是在安装/更新模块时创建的。 也许你可以通过创造两者来实现类似的目标 A: fields.many2one('old.old') B:

假设有一个字段“a”,并且有一个字段声明

 A:fields.many2one('new.new') 
然后根据任何条件,相同的字段应该得到不同的关系,如

if condition:
   A:fields.many2one(old.old)

有可能吗?

AFAIK答案是否定的。您不能在运行时更改m2o字段的comodel。需要更改外键和其他IR关系,这些关系是在安装/更新模块时创建的。 也许你可以通过创造两者来实现类似的目标

A: fields.many2one('old.old')
B: fields.many2one('new.new')
C: fields.Boolean()#condition, eventually computed
然后根据你的情况使用A或B

对于视图部分:

<field name="C" invisible="1"/>
<field name="A" attrs="{'invisible': [('C','=',False)]}"/>
<field name="B" attrs="{'invisible': [('C','=',True)]}"/>


C始终是不可见的,A和B的可见性取决于C

您的问题是,如果条件为真,则创建多个字段?不,首先多个字段是用关系(表)“new.new”声明的,然后是否可以将关系(表)更改为old.old并重新声明相同的多个字段?Alessandro,首先谢谢。是的,甚至连我都对此表示怀疑。根据条件,我们可以使用attrs和invisible切换需要在xml中显示的字段吗?