¿Tabla corrupta? .table appears corrupted

37 views
Skip to first unread message

Carlos Alba

unread,
Apr 1, 2014, 8:46:22 PM4/1/14
to web2py-...@googlegroups.com
Hola,

Tengo un problema con la definicion de una tabla, estoy aprendiendo Web2py y algo obvio  se me debe estar pasando  me aparecen estos errores:

<type 'exceptions.RuntimeError'> File /home/cley/web2py/applications/abc/databases/orden.table appears corrupted

en appadmin me aparece

<type 'exceptions.TypeError'> can't pickle function objects

curiosamente orden.table siempre que lo reviso tiene 0 bytes, y al borrarlo reaparece vacio.
He tratado varias cosas como borrar la tabla, eliminar (drop ) incluso la base de datos, fake_migrate segun se sugiere en el libro , he llegado a  crear una nueva aplicacion pero sigo con el inconveniente.

La defincion de la tabla:
db.define_table('orden',
    Field('cliente', 'reference cliente'),
    Field('numero','integer',notnull=True),
    Field('remision',label="Remisión"),
    Field('fecha','date',label="Fecha",default=request.now,notnull=True),
    Field('plazo','integer',label="Plazo",requires=IS_INT_IN_RANGE(0,90),comment=T("In days, 0 for immediate payment"),notnull=True),
    Field('transporte', 'reference transporte',notnull=True),
    Field('subtotal','double',label="SubTotal",default=0),
    Field('calcular_IVA','boolean',label="Calcular IVA",),
    Field('calcular_ReteFuente','boolean',label="Calcular ReteFuente",),
    Field('calcular_ReteICA','boolean',label="Calcular ReteICA",),
    Field('calcular_ReteCREE','boolean',label="Calcular ReteCREE",),
    Field('calcular_ReteIVA','boolean',label="Calcular ReteIVA",),
    Field('iva','double',label="IVA",default=0),
    Field('retefuente','double',label="ReteFuente",default=0),
    Field('reteica','double',label="ReteICA",default=0),
    Field('retecree','double',label="ReteCREE",default=0),
    Field('reteiva','double',label="ReteIVA",default=0),
    Field('neto','double',lambda r:  r.subtotal+r.iva-(r.retefuente+r.reteica+r.retecree+r.reteiva) ),
    migrate='orden.table',
    format=lambda r: '%s de %s' % (r.numero, db.cliente[r.cliente].nombre )
    )

Aprecio la ayuda. 

Federico Ferraro

unread,
Apr 9, 2014, 4:31:08 PM4/9/14
to web2py-usuarios@googlegroups com

El problema creo que esta en :

Field('neto','double',lambda r:  r.subtotal+r.iva-(r.retefuente+r.reteica+r.retecree+r.reteiva) )

deberia ser:

Field('neto','compute=lambda r:  r.subtotal+r.iva-(r.retefuente+r.reteica+r.retecree+r.reteiva) )

El error te esta diciendo que no puede serializar ese campo...

Slds ...

--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a web2py-usuari...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Federico Ferraro

unread,
Apr 9, 2014, 4:32:14 PM4/9/14
to web2py-usuarios@googlegroups com
Perdón quedo la comilla :

Field('neto',compute=lambda r:  r.subtotal+r.iva-(r.retefuente+r.reteica+r.retecree+r.reteiva) )
--
--
Federico Ferraro
Usuario Linux : 482533.
--
Reply all
Reply to author
Forward
0 new messages