Я получил это с помощью словарей.
Python код:
size = {
'u/s': {'mp/sup': 0, 'tr': 0, 'd2':0,'v':0,'v1':0,'d/rej':0},
'w': {'mp/sup': 0, 'tr': 0, 'd2':0,'v':0,'v1':0,'d/rej':0},
'bhl': {'mp/sup': 0, 'tr': 0, 'd2':0,'v':0,'v1':0,'d/rej':0},
'bhp': {'mp/sup': 0, 'tr': 0, 'd2':0,'v':0,'v1':0,'d/rej':0},
'rhl': {'mp/sup': 0, 'tr': 0, 'd2':0,'v':0,'v1':0,'d/rej':0},
'rhp': {'mp/sup': 0, 'tr': 0, 'd2':0,'v':0,'v1':0,'d/rej':0},
'yhl': {'mp/sup': 0, 'tr': 0, 'd2':0,'v':0,'v1':0,'d/rej':0},
'yhp': {'mp/sup': 0, 'tr': 0, 'd2':0,'v':0,'v1':0,'d/rej':0},
'stains': {'mp/sup': 0, 'tr': 0, 'd2':0,'v':0,'v1':0,'d/rej':0},
}
for output in self.env['stock.move.line'].search(['|', ('origin', '=', docs.name), ('reference', '=', docs.name)]):
lot_id = output.lot_id.name
if lot_id:
for i in size:
for j in size[i]:
if (f"{j}-{i}") == lot_id.lower():
size[i][j] = output.qty_done
Xml код:
<thead>
<tr>
<th>SIZE</th>
<th>MP/SUP</th>
<th>TR</th>
<th>D2</th>
<th>V</th>
<th>V1</th>
<th>D/REJ</th>
<th>TOTAL</th>
<th>PERCENTAGE (%)</th>
</tr>
</thead>
<tbody>
<t t-foreach="size" t-as="i">
<tr>
<th>
<t t-esc="i.upper()" />
</th>
<t t-foreach="size[i]" t-as="j">
<td>
<t t-esc="size[i][j]" />
</td>
</t>
</tr>
</t>
</tbody>
Ps. Pandas кажется действительно быстрым способом добиться цели.