Problema al pasar valor de tabla a comando "compute"

19 views
Skip to first unread message

Juan Espartosa

unread,
Jan 31, 2015, 7:28:39 AM1/31/15
to web2py-...@googlegroups.com

   Hola!!!

  estoy teniendo un problema al pasar el valor de una tabla una funcion para usar el comando compute
  tengo algo asi:


en db.py:

db.define_table('Modulos',
               
Field('imagen','upload'),
               
Field('descripcion','string'),

                Field('Costo'))

from Funciones import CalcularCostos
db
.Modulos.Costo.compute = lambda row: CalcularCostos(row.descripcion)



en el modulo funciones:
def CalcularCostos (NombreModulo):
   
## Modulos=db().select(db.Modulos.Descripcion==NombreModulo)
     
   
return NombreModulo


y en la vista:

def Presupuesto():
    db
(db.Modulos.id > 0).update()
    prueba
=db().select(db.Modulos.ALL)
   
return dict(prueba=prueba)


El caso es que si sustituyo

db.Modulos.Costo.compute = lambda row: CalcularCostos(row.descripcion)

por


db.Modulos.Costo.compute = lambda row: CalcularCostos('hola')

no me da error sino me sale este:

<type 'exceptions.SyntaxError'> No fields to update

Versión

web2py™ Version 2.9.11-stable+timestamp.2014.09.15.23.35.11
Python Python 2.7.6: C:\web2py\web2py.exe (prefix: C:\Python27)

Rastreo

1.
2.
3.
4.
5.
6.
7.
8.
9.
Traceback (most recent call last):
File "gluon/restricted.py", line 224, in restricted
File "C:/web2py/applications/PresentiMobiliario/controllers/default.py", line 113, in <module>
File "gluon/globals.py", line 392, in <lambda>
File "C:/web2py/applications/PresentiMobiliario/controllers/default.py", line 59, in Presupuesto
db(db.Modulos.id > 0).update()
File "gluon/dal.py", line 10772, in update
SyntaxError: No fields to update

Sabeis por que puede ser?? me estoy volviendo loco

Muchas gracias!!!!!


Luis Díaz

unread,
Feb 5, 2015, 12:49:24 PM2/5/15
to web2py-...@googlegroups.com
bueno creo q la linea dnd tienes el update esta mala,
siempre uno manda un valor al campo q corresponda.

yo creo que resuelves mejor:

db(db.Modulos.id>0).update(descripcion='hola')

claro que si necesitas que el valor de descripcion sea diferente x cada
registro, creo q vas a tener que usar un for


--
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.



--
http://diazluis.com
Analista Programador
User Linux 532223
Reply all
Reply to author
Forward
0 new messages