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.