创建中的 Odoo 循环
Odoo loop in create
我创建了以下嵌套循环,可以让我记录每张发票的分期付款,效果很好:
for num in range(1, int(dues)+1):
for data1 in lista:
new = Dues.create({
're_customer': data1['cliente'][0],
'amount_dues': float(data1['cliente'][1]) / dues,
'amount_total': data1['cliente'][1],
'number_dues': num,
'n_invoice': data1['cliente'][2],
'pay_amount_dues': float(data1['cliente'][1]) / dues,
'debit_balance': float(data1['cliente'][1]) / dues,
'day': []
})
我现在正在努力将 day
键添加到传递给上述 Dues.create()
方法的字典中。
现在,我正在尝试使用以下方法将所有日期存储在一个变量中:
for daysum in range(1, int(dues)+1):
td = td + int(day)
dias.append(td)
这会在这样的列表中累积天数:[12, 13, 31]
完成上述操作后,我现在需要弄清楚如何将列表的每一天添加到传递给上面 Dues.create()
方法的字典中的 day
键。
我的目标是在每个 Dues.create()
方法调用中节省一天,所以我们第一次调用 Dues.create()
时我们将 12 作为 day
的值传递,而第二次当我们调用 Dues.create()
时,我们传递 13 作为 day
的值,依此类推。我怎样才能实现这种行为?
我刚刚尝试编辑您的问题,将其中的一些语言(例如 "cycle")替换为给定概念的传统术语(例如 "cycle" = "loop") .这样做之后,我想我对您的目标有了更多的了解,但我仍然不太确定。
您在 dias
中为 range(1, int(dues)+1)
中的每个值创建一个值。同样,您使用 range(1, int(dues)+1)
作为 Dues.create()
方法调用的上层循环。我的预感是您可能希望在该循环中使用索引位置 num - 1
来标识 dias
中对应于给定 num
值的值。 (减一,因为您的范围使用基于 1 的索引)。
换句话说,如果我理解你的话,我认为你想先创建 dias
变量,然后执行:
for num in range(1, int(dues)+1):
for data1 in lista:
new = Dues.create({
're_customer': data1['cliente'][0],
'amount_dues': float(data1['cliente'][1]) / dues,
'amount_total': data1['cliente'][1],
'number_dues': num,
'n_invoice': data1['cliente'][2],
'pay_amount_dues': float(data1['cliente'][1]) / dues,
'debit_balance': float(data1['cliente'][1]) / dues,
'day': dias[num-1]
})
如果我对你有误解,请随时跟进...
我创建了以下嵌套循环,可以让我记录每张发票的分期付款,效果很好:
for num in range(1, int(dues)+1):
for data1 in lista:
new = Dues.create({
're_customer': data1['cliente'][0],
'amount_dues': float(data1['cliente'][1]) / dues,
'amount_total': data1['cliente'][1],
'number_dues': num,
'n_invoice': data1['cliente'][2],
'pay_amount_dues': float(data1['cliente'][1]) / dues,
'debit_balance': float(data1['cliente'][1]) / dues,
'day': []
})
我现在正在努力将 day
键添加到传递给上述 Dues.create()
方法的字典中。
现在,我正在尝试使用以下方法将所有日期存储在一个变量中:
for daysum in range(1, int(dues)+1):
td = td + int(day)
dias.append(td)
这会在这样的列表中累积天数:[12, 13, 31]
完成上述操作后,我现在需要弄清楚如何将列表的每一天添加到传递给上面 Dues.create()
方法的字典中的 day
键。
我的目标是在每个 Dues.create()
方法调用中节省一天,所以我们第一次调用 Dues.create()
时我们将 12 作为 day
的值传递,而第二次当我们调用 Dues.create()
时,我们传递 13 作为 day
的值,依此类推。我怎样才能实现这种行为?
我刚刚尝试编辑您的问题,将其中的一些语言(例如 "cycle")替换为给定概念的传统术语(例如 "cycle" = "loop") .这样做之后,我想我对您的目标有了更多的了解,但我仍然不太确定。
您在 dias
中为 range(1, int(dues)+1)
中的每个值创建一个值。同样,您使用 range(1, int(dues)+1)
作为 Dues.create()
方法调用的上层循环。我的预感是您可能希望在该循环中使用索引位置 num - 1
来标识 dias
中对应于给定 num
值的值。 (减一,因为您的范围使用基于 1 的索引)。
换句话说,如果我理解你的话,我认为你想先创建 dias
变量,然后执行:
for num in range(1, int(dues)+1):
for data1 in lista:
new = Dues.create({
're_customer': data1['cliente'][0],
'amount_dues': float(data1['cliente'][1]) / dues,
'amount_total': data1['cliente'][1],
'number_dues': num,
'n_invoice': data1['cliente'][2],
'pay_amount_dues': float(data1['cliente'][1]) / dues,
'debit_balance': float(data1['cliente'][1]) / dues,
'day': dias[num-1]
})
如果我对你有误解,请随时跟进...