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
Discard

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!