2017-04-07 69 views
0

我想從sale.order.line onchange方法得到idsale.order的值。如何從sale_order_line onchange方法獲取sale_order.id?在odoo 9

我有這樣的代碼:

class SaleOrderLineExt(models.Model): 
    _inherit = ['sale.order.line'] 

    @api.multi 
    @api.onchange('my_field') 
    def my_field_change(self): 

     related_sale_order = self.order_id 
     print 'related_sale_order: ', related_sale_order 
     print 'related_sale_order.id: ', related_sale_order.id 

但是我有輸出是這樣的:

related_sale_order: sale.order(<openerp.models.NewId object at 0x7f7566029810>,) 
related_sale_order.id: <openerp.models.NewId object at 0x7f7566029810> 

我可以檢查銷售訂單的其他值,但不是ID。爲什麼是這樣的,我怎樣才能得到它?

+0

@GeorgeDaramouskas什麼定義? related_sale_order是我剛剛創建的var的名稱,例如「aux」 – MouTio

回答

2
在平變化的方法

有爲了得到你的原盤視圖中的值框架通d虛擬對象:

self._origin.related_sale_order.id 

,但你應該保持考慮到創建記錄時的相關銷售訂單尚未保存在數據庫中,您將繼續獲得相同的結果,但在編輯模式下,您將擁有該ID。

希望這可以幫助你。

+0

好的,那有效。現在,如果我想檢查其他寄存器的編輯值,我怎樣才能得到它們?這是否清楚我的問題? – MouTio

+0

不,請提問一個問題提供一些代碼,我們將盡力幫助你對延遲抱歉 – Cherif

0

嘗試這個

class SaleOrderLineExt(models.Model): 
    _inherit = ['sale.order.line'] 

    @api.multi 
    @api.onchange('my_field') 
    def my_field_change(self): 

     related_sale_order = self.order_id.id 
     print "related_sale_order " related_sale_order 
+0

這正是我在做的,但是你把它放在一行而不是兩行中。 – MouTio