General

¡Bienvenido!

Esta comunidad es para profesionales y principiantes en nuestros productos y servicios.
Comparte y discute el mejor contenido y nuevas ideas de marketing, construye tu perfil profesional y conviértete en un mejor comercializador.

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

Por favor trate de dar una respuesta sustancial. Si desea comentar sobre la pregunta o respuesta, utilice la herramienta de comentarios. Recuerde que siempre puede revisar sus respuestas - no hay necesidad de contestar la misma pregunta dos veces. Además, no olvide valorar - realmente ayuda a seleccionar las mejores preguntas y respuestas