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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to