Estoy usando el widget de auto completado de la siguiente manera:
db.tpersona.idprovincia.widget = SQLFORM.widgets.autocomplete(request, db.trprovincia.descripcion,
Funciona bien, el tema es que no me permite buscar el contenido en el medio de una cadena, por ejemplo:
Si tuviera la provincia "Santa Cruz", mi idea es escribir "Cru" y debería mostrarme "Santa Cruz". ¿Alguien tiene alguna sugerencia?.
response.files.append(URL(r=request,c='static/jquery-autocomplete',f='jquery.autocomplete.js'))
response.files.append(URL(r=request,c='static/jquery-autocomplete',f='jquery.autocomplete.css'))
def get_items():
itms = []
if request.vars.q and request.vars.table and request.vars.field:
q = request.vars.q
f = request.vars.field
t = request.vars.table
fld = db[t][f]
rows = db(fld.upper().like("%"+q.upper()+"%")).select(fld,distinct=True)
itms = [str(t[f]) for t in rows]
return '\n'.join(itms)
def autocomplete_widget(f,v):
import uuid
d_id = "autocomplete-" + str(uuid.uuid4())[:8]
get_url = URL(r=request,c='default',f='get_items')
wrapper = DIV(_id=d_id)
inp = SQLFORM.widgets.string.widget(f,v)
scr = SCRIPT('jQuery("#%s input").autocomplete("%s",{extraParams:{field:"%s",table:"%s"}});' % \
(d_id, get_url,
f.name,f._tablename))
wrapper.append(inp)
wrapper.append(scr)
return wrapper
Error ticket for "Tester"
Ticket ID
127.0.0.1.2017-05-10.08-44-36.08989307-1cf8-4970-b9d8-632c417c8ab8
<type 'exceptions.TypeError'> 'DIV' object is not callable
Versión
web2py™ Version 2.14.6-stable+timestamp.2016.05.10.00.21.47
Python Python 2.7.13: /usr/bin/python (prefix: /usr)
Rastreo
14.
Traceback (most recent call last):
File "/home/jalbornoz/web2py/gluon/restricted.py", line 227, in restricted
exec ccode in environment
File "/home/jalbornoz/web2py/applications/Tester/controllers/default.py", line 99, in <module>
File "/home/jalbornoz/web2py/gluon/globals.py", line 417, in <lambda>
self._caller = lambda f: f()
File "/home/jalbornoz/web2py/applications/Tester/controllers/default.py", line 96, in abmpersona
File "/home/jalbornoz/web2py/gluon/sqlhtml.py", line 2303, in grid
create_form = SQLFORM(table, **sqlformargs)
File "/home/jalbornoz/web2py/gluon/sqlhtml.py", line 1286, in __init__
inp = field.widget(field, default)
TypeError: 'DIV' object is not callable
Error snapshot help
<type 'exceptions.TypeError'>('DIV' object is not callable)
¿Alguna idea de por qué se genera este error?.