General

¡Bienvenido a los foros Aeodoo!

Somos la comunidad de Odoo internacional hispanohablante.
Estos foros son para compartir y debatir dudas técnicas, funcionales y mejores prácticas para Odoo. Recuerda que no están permitidos los insultos, descalificaciones o spam, cualquier conducta reprobable supondrá el baneo del usuario.

0

Filtro para campo one2many en el modelo

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.

Avatar
Descartar

Su respuesta

Intente dar una respuesta sustancial. Si desea hacer un comentario sobre la pregunta o la respuesta, utilice la herramienta de comentarios. Recuerde que siempre puede revisar sus respuestas , no es necesario responder dos veces a la misma pregunta. No olvide votar , ayuda a seleccionar las mejores preguntas y respuestas