因此,在第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计算价格并包含浮点数。
答案 0 :(得分:1)
要在表中写入新值,您需要为该类调用 ORM 的 write 。
首先,您应该从当前对象获取 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})