(cr,uid,frozendict(context)TypeError:“float”对象不是iterab

2024-06-06 18:51:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用odoo中的onchange方法更新字段。在

我的.py代码是

class hr_contract(osv.osv):
_name = 'hr.contract'
_description = 'Contract'


def _wage(self, cr, uid, ids,context=None):
        res = {}
        pay_slip = 0
        pay_slip1 = 0

        for obj in self.browse(cr, uid, ids, context=context):
            s1 = ("""select schedule_pay from hr_contract where employee_id=%s""" % (obj.employee_id.id))
            cr.execute(s1)
            l1 = cr.fetchone()
            value10 = l1[0]
            if value10 == 'bi-weekly':
                s4 = (
                    """select salary from hr_contract where employee_id=%s """ % (
                        obj.employee_id.id))
                cr.execute(s4)
                l4 = cr.fetchone()
                salary = l4[0]
                # **************************************************************#
                ######### Week1  #############
                s5 = ("""select week1 from hr_contract where employee_id=%s """ % (
                    obj.employee_id.id))
                cr.execute(s5)
                l5 = cr.fetchone()
                week1 = l5[0]
                print "week1", week1
                if week1 != None:
                    if week1 > 48.00:
                        weeked1 = week1 - 48.00
                        total_amt = salary * (weeked1 * 1.5)
                        total_pay = 48.00 * salary
                        pay_slip = total_amt + total_pay
                        pay_slip1 += pay_slip
                        print "payslip..", pay_slip
                        cr.execute(""" update hr_contract set week1=%s where employee_id=%s""" % (
                            week1, obj.employee_id.id))
                    else:
                        pay_slip = week1 * salary
                        pay_slip1 += pay_slip
                        print "payslip..", pay_slip1

当我更改字段并将其保存时,错误显示为

^{pr2}$

如果我从for循环中删除上下文,它将采用前面的计算值。在

我怎么解决这个问题?在

我使用xml中的onchange调用函数

^{3}$

该字段在py中设置为float

 'wage': fields.float('Per Hour Wages'),
 'week1': fields.float('Week 1'),

Tags: idobjexecutecontextemployeehrwherepay
1条回答
网友
1楼 · 发布于 2024-06-06 18:51:34

这是TypeError: 'float' object is not iterable"的意思:

count=7比如说for i in count:的意思是{},这行不通。in后面的位应该是iterable类型,而不是数字。试试这个:

for i in range(count):

正如评论中提到的,把你的问题隔离开来,以获得更清晰的答案。在

相关问题 更多 >