首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: TypeError:'int‘对象不可迭代

TypeError: TypeError:'int‘对象不可迭代
EN

Stack Overflow用户
提问于 2016-04-06 14:52:50
回答 2查看 2.7K关注 0票数 1

我正在发票模块中创建一个函数。您应该做的是让这个功能产品线是相等的发票,并退还每件产品的金额。下面的图片更好地解释了这一点:

例如,产品"Aceite Hidraulico“在发票上出现了3次。然后,函数应该返回一个3为该产品。

好吧,这是我的account.invoice.py中的函数:

代码语言:javascript
复制
total_quantity = fields.Integer(compute='count_invoice_invoice', string = 'Cantidad Productos', readonly = True, store=True)

@api.one
@api.depends('invoice_line_ids.product_id')
def count_invoice_invoice(self):
    res = {}
    counter = 0
    for po in self.invoice_line_ids:
        for product in po.product_id.id:
            counter += 1
            res [self.total_quantity] = counter
    return res

对于区分一个产品和另一个产品的函数,我使用id字段product.product模型。但是,当我尝试创建发票时,Odoo向我展示了一个消息int类型字段不能是可迭代的。这是一个问题,因为区分产品的id字段是整数。

我该怎么办?

这是向Odoo显示的信息:

对于po.product_id.id中的产品: TypeError:int对象不可迭代

非常感谢您的帮助和花费的时间。我感谢你的任何建议或建议,以得到你想做的事情。

EN

回答 2

Stack Overflow用户

发布于 2016-04-07 13:15:07

好像你想在整数上循环。如果要增加计数器,请尝试在对象上循环它。代表:

代码语言:javascript
复制
for po in self.invoice_line_ids:
    for product in po.product_id:
        counter += 1
        res [self.total_quantity] = counter
return res

通过这种方式,您可以遍历对象,如果需要获取每个产品id,则可以通过循环中的product.id获得它。

票数 1
EN

Stack Overflow用户

发布于 2016-04-07 09:10:16

实际上,您对for循环有问题。您正在尝试对整数进行循环。po.product_id.id 是整数,所以我认为没有必要使用这个for循环,即使您想要使用for循环,如:对于po.product_id.id中的产品

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36454763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档