Below is the snippets from code (I have changed few field names as I can't
share the exact field names)
--> Data base
db.define_table('Table1',
Field('Release'),
format='%(Release)s')
db.define_table('Table2',
Field('Release',db.Table1),
Field('Year'),
format='%(Year)s')
db.define_table('Table3',
Field('Manfucturer',writable=False),
Field('MID'),
Field('Year',db.Table2,writable=False),
Field('Engineer'),
Field('Location',writable=False),
Field('Title',writable=False),
Field('Description','text'),
Field('City',writable=False))
db.Table2.Release.requires = IS_IN_DB(db,db.Table1.id,'%(Release)s')
db.Table3.MID.requires = IS_IN_DB(db,db.Table2.id,'%(MID)s')
--> This function is called by AJAX on change of first option in drop down
def getResults():
tab2results =
db(db.Table2.Release==request.vars.release_name).select(orderby=~db.Table2.id)
result = "<select name='table2_name'>"
for tab2 in tab2results:
print tab2
result += "<option value='" + str(tab2.id) + "'>" + tab2.Year +
"</option>"
result += "</select>"
return XML(result)
No, I don't have an index for the table.
On Thursday, May 22, 2014 6:50:02 PM UTC+5:30, Anthony wrote:
>
> Would still help to see your specific model code. Is the field in question
> a reference field with a "represent" attribute? If so, you'll get separate
> queries for each item in order to lookup the represent value. How many
> records in the table? Do you have an index on the field being searched? If
> you execute the same query in a separate DB client, how long does it take?
>
> Anthony
>
> On Thursday, May 22, 2014 8:37:55 AM UTC-4, Sarbjit wrote:
>>
>> Hi Anthony,
>>
>> Code is almost identical to the code posted in slice with change in field
>> names and number of records. Only additonal difference is that I am using
>> "orderby" in the query before returing the results.
>>
>> Surprisingly, sometime the result appears fast (within 2-3 seconds) but
>> some time it takes long time to populate it.
>>
>> -Sarbjit
>>
>> On Thursday, May 22, 2014 4:46:55 PM UTC+5:30, Anthony wrote:
>>>
>>> Would help to see some code. 4-5 seconds sounds much too long.
>>>
>>> You might also look into
>>> http://dev.s-cubism.com/plugin_lazy_options_widget.
>>>
>>> Anthony
>>>
>>> On Thursday, May 22, 2014 12:17:42 AM UTC-4, Sarbjit wrote:
>>>>
>>>> Hi,
>>>>
>>>> I am using cascading drop-down based on the slice posted on "
>>>> http://www.web2pyslices.com/slice/show/1526/cascading-drop-down-lists-with-ajax-2".
>>>>
>>>> In my application, the number of sub-records for drop-down are typically
>>>> in
>>>> range of 50-60, so every-time I change the first option in drop down, it
>>>> takes significant time (around 4-5 seconds) to populate my second drop
>>>> down.
>>>>
>>>> I was wondering if there is a way to make this fast by means of caching
>>>> or by storing the data for all the records the first time when user logs
>>>> into the system and then using that data. Can some one please comment on
>>>> how to address this problem and if possible, an example would be helpful.
>>>>
>>>> -Sarbjit
>>>>
>>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
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/d/optout.