Fixed now in trunk.

On Monday, 10 June 2013 22:14:34 UTC-5, www.diazluis.com wrote:
>
> files presented below: 
> controller 
> modules 
> models 
> and throws error 
>
> controller: 
> ###### 
> @auth.requires_login() 
> def update(): 
>
>     ubicacion = db.ubicacion(auth_user=auth_user_id) 
>
>     db.ubicacion.ciudad_pais.widget = SQLFORM.widgets.autocomplete( 
>      request, db.ciudad_pais.nombre, min_length=2, id_field=
> db.ciudad_pais.id) 
>
>     if ubicacion is None: 
>         form = crud.create(db.ubicacion, next=URL('index')) 
>     else: 
>         form = crud.update(db.ubicacion, record=ubicacion.id, 
> next=URL('index')) 
>
>     return dict(form=form) 
> ###### 
>
>
>
> models/a20_ciudad.py 
> ###### 
> # -*- coding: utf-8 -*- 
>
>
> from applications.welcome.modules import table_ciudad_pais 
>
> models_ciudad_pais = table_ciudad_pais.Models(db) 
> models_ciudad_pais.define_table() 
> ###### 
>
>
>
>
> models/a50_ubicacion.py 
> ###### 
> # -*- coding: utf-8 -*- 
>
> from applications.welcome.modules import table_ubicacion 
>
> models_ubicacion = table_ubicacion.Models(db, auth_user_id) 
> models_ubicacion.define_table() 
> ###### 
>
>
>
> modules/table_ciudad_pais.py 
> ####### 
> # -*- coding: utf-8 -*- 
>
>
> from gluon.dal import Field 
> from gluon import current 
> from gluon.validators import * 
> from gluon.http import redirect 
> from gluon.html import XML, TAG, URL 
>
>
> from applications.welcome.modules import app_function 
>
>
> class Models(object): 
>
>
>     def __init__(self, db, migrate=True): 
>         self.request = current.request 
>         self.session = current.session 
>         self.dominio = current.request.env.http_host 
>
>         self.m_function = app_function.App_function() 
>
>         self.db = db 
>
>         self.ciudad_pais = None 
>         self.bloqueo = False 
>
>         self.migrate = migrate 
>
>
>
>
>     def define_table(self): 
>
>         self.db.define_table('ciudad_pais', 
>
>             Field('f_id', 'string', writable=False), 
>             Field('nombre', 'string', writable=False), 
>
>             migrate=self.migrate, 
>
>             format = '%(nombre)s' 
>         ) 
>
>
>         #label 
>
>
>
>     def chequeo(self, location): 
>         self.location = location 
>         self.db.ciudad_pais.update_or_insert(f_id=self.location['id'], 
> nombre=self.location['name']) 
>         self.ciudad_pais = self.db.ciudad_pais(f_id=self.location['id']) 
>         return self.ciudad_pais 
>
> ######### 
>
>
> modules/table_ubicacion.py 
> ####### 
> # -*- coding: utf-8 -*- 
>
>
> from gluon.dal import Field 
> from gluon import current 
> from gluon.validators import * 
> from gluon.sqlhtml import SQLFORM 
>
> from applications.welcome.modules import app_function 
> from applications.welcome.modules import app_var 
> from applications.welcome.modules import facebook as Facebook 
>
> from datetime import time 
>
>
> class Models(object): 
>
>
>     def __init__(self, db, usuario_id, migrate=True): 
>         self.request = current.request 
>         self.session = current.session 
>
>         self.m_var = app_var.App_var() 
>         self.m_function = app_function.App_function() 
>
>         self.db = db 
>
>         self.auth_user_id = usuario_id 
>
>         self.migrate = migrate 
>
>         self.bloqueo = None 
>
>
>     def define_table(self): 
>
>         self.db.define_table('ubicacion', 
>             Field('ciudad_pais', self.db.ciudad_pais), 
>             Field('zona', self.db.zona, writable=False, readable=False), 
>             Field('tlf', 'string'), 
>             Field('fecha_update', 'datetime', 
> default=self.request.now, readable=False, writable=False), 
>
>             Field('auth_user', self.db.auth_user, 
> default=self.auth_user_id, writable=False, readable=False), 
>
>             migrate=self.migrate, 
>
> #            format = lambda row: ('%s') % (row.fprofile['first_name']) 
>         ) 
>
>         #requires 
>         self.db.ubicacion.ciudad_pais.requires = IS_IN_DB(self.db, 
> 'ciudad_pais.id', self.db.ciudad_pais._format, zero=None) 
>         self.db.ubicacion.tlf.requires = [ 
>             IS_EMPTY_OR( 
>                 IS_LENGTH(maxsize=32, minsize=10) 
>             ) 
>         ] 
> ######## 
>
>
> ERROR: 
> ####### 
> Traceback (most recent call last): 
>   File "/home/diazluis2007/vps/gluon/restricted.py", line 212, in 
> restricted 
>     exec ccode in environment 
>   File 
> "/home/diazluis2007/vps/applications/welcome/controllers/ubicacion.py", 
> line 32, in <module> 
>   File "/home/diazluis2007/vps/gluon/globals.py", line 194, in <lambda> 
>     self._caller = lambda f: f() 
>   File "/home/diazluis2007/vps/gluon/tools.py", line 3022, in f 
>     return action(*a, **b) 
>   File 
> "/home/diazluis2007/vps/applications/welcome/controllers/ubicacion.py", 
> line 22, in update 
>     request, db.ciudad_pais.nombre, min_length=2, 
> id_field=db.ciudad_pais.id, help_fields=None) 
>   File "/home/diazluis2007/vps/gluon/sqlhtml.py", line 673, in __init__ 
>     self.callback() 
>   File "/home/diazluis2007/vps/gluon/sqlhtml.py", line 683, in callback 
>     rows = self.db(field.like(self.request.vars[self.keyword] + 
> '%')).select(orderby=self.orderby, limitby=self.limitby, 
> distinct=self.distinct,  *(self.fields+self.help_field)) 
> AttributeError: 'AutocompleteWidget' object has no attribute 'help_field' 
> ##### 
>
>
> gluon\sqlhtml.py 
> linea original 683 
> rows = self.db(field.like(self.request.vars[self.keyword] + 
> '%')).select(orderby=self.orderby, limitby=self.limitby, 
> distinct=self.distinct,  *(self.fields+self.help_field)) 
>
> change: 
> rows = self.db(field.like(self.request.vars[self.keyword] + 
> '%')).select(orderby=self.orderby, limitby=self.limitby, 
> distinct=self.distinct) 
>
>
> to make the change and no error occurs .. 
> I was temporary patch to continue working .. 
> reported to have someone with more knowledge explain me resolve this 
> or the correct way to use the widget 
>
> I'm using google translator, sorry 
>
>
> -- 
> Díaz Luis 
> Analista Programador Facultad de Odontología UC 
> User Linux 532223 
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to