创建中的 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]
    })

如果我对你有误解,请随时跟进...