On 23 de setembre de 2017 1.32.21 CEST, "Josias Pérez" <[email protected]> wrote: > def on_change_product(self): > res = {} > res['lines'] = {} > if self.lines: >Tengo problemas en esta línea > res['lines']['remove'] = [x['id'] for x in self.lines] > > if not self.product: > return res > > name = self.product+'%' > products = Product.search([('name', 'ilike', name)]) > for p in products: > > product_line = { > 'product': p.id, > 'precio_venta':p.list_price, > } >Y en esta también > res['lines'].setdefault('add', []).append((0, product_line)) > >Quiero que al efectuar un on_change en un campo me actualice un campo >one2many, estoy en la versión 4.4 >
En la version 4.4 los on_change ya no tienen que devolver un diccionario sino que tienes que modificar directamente la instancia con ActiveRecord. Seria algo como: self.lines = [] for p in products: line = Line() line.product = product .... self.lines.append(line) I ya lo tendrias. Asegurate de que el metodo no devuelva nada, sino que simplemente modifique la instancia. >Desde ya muchas gracias Espero que te servia de ayuda. Saludos, > >El miércoles, 20 de septiembre de 2017, 1:24:11 (UTC-6), Sergi >Almacellas >Abellana escribió: >> >> El 19/09/17 a les 23:29, Josias Pérez ha escrit: >> > No me funciona el código, alguna actualización? Gracias. >> En que version de tryton trabajas? >> >> Que intentas hacer? >> >> Si nos das mas información quizás te podamos ayudar con mas detalle. >> >> Un saludo, >> >> -- >> Sergi Almacellas Abellana >> www.koolpi.com >> Twitter: @pokoli_srk >> -- Enviado desde mi dispositivo Android con K-9 Mail. Por favor, disculpa mi brevedad.
