Error al actualizar base de datos

22 views
Skip to first unread message

Juan Espartosa

unread,
Jan 31, 2015, 5:21:35 PM1/31/15
to web2py-...@googlegroups.com
Holaaa

Tengo un problema al intentar actualizar un tabla,a ver si me podeis ayudar que me esta volviendo locooo jaja

Tengo esta tabla con el comando compute en una field:

Introducir código 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)

Tengo el modulo Funciones:


# -*- coding: utf-8 -*-

def CalcularCostos (NombreModulo=1):
   
## Modulos=db().select(db.Modulos.Descripcion==NombreModulo)
     
   
return NombreModulo

Y en el Controlador de la vista tengo esto...

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

Me salta este error:

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


Versión


web2py™Version 2.9.11-stable+timestamp.2014.09.15.23.35.11
PythonPython 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


Si en vez de pasarle a la funcion compute esto:

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

le paso esto:

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


No me da el error

Muchas gracias!!!!

samuel bonill

unread,
Feb 6, 2015, 5:30:35 PM2/6/15
to web2py-...@googlegroups.com
Debe ser porque row.descripcion es una cadena no un numero entero

y por que tienes en tu funcion : db(db.Modulos.id > 0).update() ?

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

samuel bonill

unread,
Feb 6, 2015, 5:34:29 PM2/6/15
to web2py-...@googlegroups.com
el error lo tienes en : db(db.Modulos.id > 0).update(), no has definido que tabla vas a actualizar, ni los campos, pues el metodo update recibe parametros que en este caso son los campos de la tabla que deseas actualizar

mira estos ejemplos : http://www.web2py.com/books/default/chapter/36/06/la-capa-de-abstraccion-de-la-base-de-datos#update_record
Reply all
Reply to author
Forward
0 new messages