openerp fields.function不影响值

openerp fields.function不影响值,openerp,Openerp,我有一个函数字段,它不会给出任何错误,但也不会设置任何值,即使它应该设置 代码: 注意:purchase_id是添加到purchase.order的自定义子级的多个标识 问题1。我得到的只是一个0分的罚球。既不是20岁,也不是10岁。有什么不对劲吗?如果是因为ID为空,我该如何处理 问题2。当我最终需要它来计算罚金时,如何将值\u forpenal传递给函数?因此,当用户在表单中为value_forpenal字段输入值时(并按下计算按钮,或者理想情况下不按下该按钮),该值应传递给函数进行计算 谢

我有一个函数字段,它不会给出任何错误,但也不会设置任何值,即使它应该设置

代码:

注意:purchase_id是添加到purchase.order的自定义子级的多个标识

问题1。我得到的只是一个0分的罚球。既不是20岁,也不是10岁。有什么不对劲吗?如果是因为ID为空,我该如何处理

问题2。当我最终需要它来计算罚金时,如何将值\u forpenal传递给函数?因此,当用户在表单中为value_forpenal字段输入值时(并按下计算按钮,或者理想情况下不按下该按钮),该值应传递给函数进行计算


谢谢

I您的代码按照您接受的方式工作,代码中没有问题

您可以重新启动服务器并再次检查吗

for line in self.browse(cr, uid, ids, context=context):
        if line.picking_id and line.picking_id.purchase_id and line.picking_id.purchase_id.penalty_id:
            res[line.id] = 10.0
通过传递参数值\u作为惩罚,可以从第行的函数中得到这个值


希望这对您有所帮助

谢谢。。。我试试这个。
for line in self.browse(cr, uid, ids, context=context):
        if line.picking_id and line.picking_id.purchase_id and line.picking_id.purchase_id.penalty_id:
            res[line.id] = 10.0
    res[line.id] = line.value_forpenalty