2015-12-03 63 views
0

假設有一個場「A」,並具有域聲明說根據條件可以改變字段的關係嗎?

A:fields.many2one('new.new') 

,然後基於任何條件,同場應該像

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

不同的關係,這可能嗎?

+0

你的問題是,如果condtion是真,那麼創建many2one領域? –

+0

不,起初many2one字段是用關係(表)'new.new'聲明的,那麼是否可以將關係(表)改爲old.old並重新聲明相同的many2one字段? –

回答

0

AFAIK答案是否定的。您不能在運行時更改m2o字段的編碼。這將需要更改模塊安裝/更新時創建的外鍵和其他IR關係。 也許你可以通過創建兩個

A: fields.many2one('old.old') 
B: fields.many2one('new.new') 
C: fields.Boolean()#condition, eventually computed 

,然後使用一個根據您的病情達到類似的東西。

的視圖部分:

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

C是永遠看不見的,A和B可見性取決於基於C

+0

亞歷山德羅,首先謝謝你。即使我對此有疑問。根據條件,我們可以使用attrs和不可見來切換需要以xml顯示的字段嗎? –

+0

查看我的更新回答 –

+0

好的,現在就試試吧 –

相關問題