2015-04-08 139 views
0

因此,例如,在第1类中,我计算一个价格,并且我想将此价格分配给来自第2类的字段。将一个类别的值分配给另一个类别

我怎样才能做到这一点,我尝试没有成功如下:

self.browse(cr, uid, ids[0]).task_id.xx_new_price = new_price 

xx_new_price是从中我可以访问低谷TASK_ID另一个类的字段。 new_price只包含一个数字。

编辑:用代码

class PurchaseOrder(osv.Model): 
_inherit = 'purchase.order' 

def wkf_confirm_order(self, cr, uid, ids, context=None): 
    new_price = self.pool.get('price.calculation').calculate_price(cr, uid, ids, context=context) 

    for purchase_order in self.browse(cr, uid, ids): 
     if purchase_order.task_id: 
      task = self.pool.get('project.task').browse(cr, uid, purchase_order.task_id)[0] 
      task.write({'xx_new_price': new_price}) 

_columns = { 
    'project_id': fields.many2one('project.project', 'Project'), 
    'task_id': fields.many2one('project.task', 'Task') 
} 

更新,所以我继承采购订单wkf_confirm方法(一切我都让这个例子标准码出)。因为当我确认一个订单时,我希望它为另一个类的另一个字段赋值(在这种情况下,在project.task中的字段xx_new_price,new_price计算一个价格并包含一个浮点数)

回答

1

要写一个新的在表中的值,你需要调用写的 ORM该类

首先,你应该从当前对象采取TASK_ID比分配NEW_PRICE

,例如:

for project in self.browse(cr, uid, ids): 
    if project.task_id: 
     project.task_id.write({'xx_new_price': new_price}) 
+0

如果我这样做的话,我会得到:“类型错误:‘NoneType’对象不是可调用的” – RandomPerson

+0

尝试更新的答案,我编写的空气所以它扔错误;-) *任务*变量必须是浏览对象。 –

+0

嗯我似乎仍然得到相同的错误,我已经更新了一些代码,可能会给更多的洞察力的主要帖子 – RandomPerson

相关问题