假设有一个字段'A'并且有一个字段声明说
A:fields.many2one('new.new')
然后基于任何条件,相同的字段应该得到不同的关系,如
if condition:
A:fields.many2one(old.old)
有可能吗?
答案 0 :(得分:0)
AFAIK答案是否定的。您无法在运行时更改m2o字段的模型。它需要更改安装/更新模块时创建的外键和其他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