Cómo puedo editar un registro existente y volverlo a guardar?

Buen día

Estoy haciendo uso de la función search para buscar el registro (producto):
imagen

Una vez encontrado lo que hago es asignarle los valores nuevos y guardarlos:
imagen
pd: existe se llama la variable que me almacena el producto encontrado.

El problema es que al verificar si se hicieron los cambios, no aparece nada

Changing an attribute of a Many2One does not trigger a write on the target once you save the origin record. You must explicitly save the target.

Algún ejemplo de cómo hacerlo? porque igual en los otros campos no Many2one no se ven cambios.

Posdata: si quieren omitan mis campos, lo que deseo saber es como editar un registro existente y luego guardarlo, creo que sabiendo eso ya puedo solucionar mi problema

As you put screenshot instead of copying the code, I can not copy and edit your example to show.

@classmethod
def buscar_producto(cls, id_producto):
    Product = Pool().get('product.product')
    try:
        producto, = Product.search([('code', '=', id_producto)])
    except ValueError:
        return False
    else:
        return producto


@classmethod
def carga_productos(cls):
[....]
        existe = cls.buscar_producto(producto[col_pro.index('IdProducto')])
        if existe:
            existe.template.name = producto[col_pro.index('Producto')].strip()
            existe.template.default_uom = 1
            existe.template.list_price = int(producto[col_pro.index('costo_unitario')])
            existe.save()
[....]

It should be:

existe.template.save()

Muchas gracias, ese era el problema :grinning: :+1:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.