我在發票模塊中創建一個函數。你應該做的是讓這個功能的產品線是平等的發票,並返回每個產品的金額。這被下面的圖像中更好地解釋:Odoo錯誤:TypeError:'int'對象不可迭代
例如,產品「Aceite Hidraulico」出現3次在發票上。然後函數應該返回一個3這個產品。
好了,這是我在我的account.invoice.py功能:
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消息:
for product in po.product_id.id:
TypeError:
int
object is not iterable
非常感謝您的幫助和花費的時間。我很欣賞任何建議或建議,以獲得您想要做的事情。
事情是,如果您將其存儲在整數字段中,則每個發票只有1個計數。它不會幫助你,你必須做的是爲報告製作一個功能。 無論如何,你不需要第二次迭代,第一次你已經在線。您必須做的是將產品保存在例如字典中,並且如果密鑰已經存在,則將該金額添加到該字典中。你仍然不能保存它作爲一個領域。 – dccdany