Vamos por partes.
On Feb 26, 10:47 am, nicolás rosbaco <
antiya...@gmail.com> wrote:
> Hola Luis... mirá lo implementé del siguiente modo (en default.py)
>
> def compras():
> form = SQLFORM.factory(
> Field('codbarras', label='Código'),
> Field('desc_id', 'reference productos',
> required=True, label='Descripción',
> requires=IS_IN_DB(db,'
productos.id','%(descripcion)s',
> error_message='Producto NO registrado')),
> Field('cantidad', 'double', default=1),
> _id='buscoProducto')
>
> if form.accepts(request.vars, session):
> registro = db(
db.productos.id
> ==request.vars.desc_id).select().first()
> if registro:
> return "jQuery('#descripcionEleccion').html('%s');" %
> repr(registro.descripcion)
Aqui retornas una cadena de caracteres.
web2py no invoca la vista cuando se retorna una cadena, solo devuelve
la cadena, lo cual generalmente ocurre cuando el controlador genera la
pagina o devuelve algo para ser usado por un componente ajax por
ejemplo.
La cadena en este caso contiene codigo Javascript (JS), el cual por
fuera de un tag SCRIPT como parte de una pagina HTML no hace nada, es
solo una cadena de caracteres.
> else:
> return dict(form=form)
>
> return dict(form=form)
Al devolver un dictionario si se invoca la vista correspondiente, o si
no existe la generica.
> Misteriosamente cuando el formulario es enviado, y aceptado, la vista
> (compras.html) se recarga y todo el contenido que tiene es la cadena
> literal:
>
> jQuery('#descripcionEleccion').html(''cerveza quilmes cristal 1 litro'');
>
> Es decir se carga una página que como TODO contenido tiene la linea
> anterior...
>
> de todos modos te pediría que mires lo de acá abajo (no se interpreta una
> variable)
>
> Hola y gracias por responder.... el tema es que igual sigo sin entender que
> pasa:
Espero que este claro ahora.
Todo lo anteriormente dicho esta en el manual, su lectura es una buena
inversion de tiempo.