将值从一个 class 赋值给另一个
Assign value from one class to another
所以在 class 1 中,例如我计算了一个价格,我想将这个价格分配给 class 2 中的一个字段。
我怎样才能做到这一点,我尝试了以下方法但没有成功:
self.browse(cr, uid, ids[0]).task_id.xx_new_price = new_price
xx_new_price 是来自另一个 class 的字段,我可以通过 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 方法(我在这个例子中省略了所有标准代码)。因为当我确认订单时,我希望它为另一个 class 的另一个字段分配一个值(在这种情况下, project.task 中的 xx_new_price 字段。 new_price 计算一个价格并包含一个浮点数。
要在 table 中写入新值,您需要调用 ORM 的 write class.
首先你应该从当前对象中取出一个 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})
所以在 class 1 中,例如我计算了一个价格,我想将这个价格分配给 class 2 中的一个字段。
我怎样才能做到这一点,我尝试了以下方法但没有成功:
self.browse(cr, uid, ids[0]).task_id.xx_new_price = new_price
xx_new_price 是来自另一个 class 的字段,我可以通过 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 方法(我在这个例子中省略了所有标准代码)。因为当我确认订单时,我希望它为另一个 class 的另一个字段分配一个值(在这种情况下, project.task 中的 xx_new_price 字段。 new_price 计算一个价格并包含一个浮点数。
要在 table 中写入新值,您需要调用 ORM 的 write class.
首先你应该从当前对象中取出一个 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})