Publicidad

miércoles, 18 de marzo de 2015

Solucion Error: NotImplementedError: 'update' not supported on frozendict

Error: NotImplementedError: 'update' not supported on frozendict


    Buenos Dias, lectores del Blog, este error ah sido muy común en mi código a la hora de migrar módulos de OpenERP 7 hacia Odoo. El error ah ocurrido cuando intento hacer un update a la variable context, ustedes se preguntaran por que no podemos actualizar un simple diccionario, bueno el problema es que Odoo ahora protege la integridad de los diccionarios como Context volviéndolos Inmutables, como si se tratase de una Tupla, utilizando Frozen Dict.

El Codigo que utlizaba era algo simple como:

context.update({'date_work': invoice.date_invoice})

Al compilar el error:

NotImplementedError: 'update' not supported on frozendict


La solución fue muy simple, convertir el Diccionario Frozen Dict:

context=dict(context)
context.update({'date_work': invoice.date_invoice})

Con esto podemos convertir el Diccionario "Inmutable" a un diccionario común y poder continuar con nuestro código.


Espero que les funcione y sea de utilidad.


3 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  2. Gracias Germán, precisamente en esta parte sigo migrando a V8.

    ResponderBorrar
  3. Amigo donde se edita ese codigo, me pase de 7 a 8 y no logro sacar ese error

    ResponderBorrar