我想从sale.order.line onchange方法获取 sale.order 的 id 值。
我有这段代码:
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 :(得分:2)
在onchange方法中,框架传递d虚拟对象,该对象在视图中具有值,以便获取您执行的原始记录:
self._origin.related_sale_order.id
但是您应该记住,创建记录时相关的销售订单尚未保存在数据库中,您将获得相同的结果,但在编辑模式下,您将拥有该ID。
希望这会对你有所帮助。
答案 1 :(得分: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