Estoy con tema de facturas.
Mediante un m2o que apunta a las cabeceras de las facturas, necesito que cuando este campo m2o tenga un valor, que el campo o2m (que apunta a las líneas de las facturas), me muestre solamente las líneas que hacen referencia a esa cabecera.
Para referenciar cabeceras y líneas uso un campo de referencia.
El siguiente código son mis campos del modelo:
cabecera_id = fields.Many2one(
comodel_name='connector.dimoni.compras',
string='Header',
index=True)
lineas_ids = fields.One2many(
comodel_name='connector.dimoni.compras.lineas',
inverse_name='linea_id',
string='Lines',
store=True)
El siguiente código adjunto es la función que tengo, que en principio era la solución que me daban por internet, pero a mi no me funciona.
@api.onchange('cabecera_id')
def onchange_get_lines(self):
for rec in self:
for line in rec.lineas_ids:
if line.RefNum == rec.cabecera_id.RefNum:
res = {'domain': {'lineas_ids': [('line.RefNum','=', rec.cabecera_id.RefNum)]}}
return res
Si alguien tiene otra solución, lo que necesito hacer es filtrar un campo o2m para que me muestre las líneas según la cabecera que esté seleccionada en un campo m2o.
Muchas gracias.