You probably want "belongs" instead of "contains".  It's a common mistake 
(which I make regularly myself).  The "contains" function in web2py is to 
test if strings are contained in a field, i.e. 
db.mytable.myfield.contains("joe") is like 
db.mytable.myfield.like("%joe%").  

"Belongs" is used to test for membership in a list, such as 
db.mytable.myfield.belongs([95050, 95051, 95052])

Hope this helps.

-- Joe

On Wednesday, April 16, 2014 5:39:02 AM UTC-7, Rob Goldsmith wrote:
>
> I tried posting this earlier, but it doesn't seem to have appeared yet - 
> so apologies if this comes up twice.
>
> I am writing a web2py application which accepts a UK postcode then 
> provides information about nearby postcodes. I have tried two methods, both 
> of which work fine when the number of nearby postcodes is relatively few 
> (less than a hundred).
>
> Method 1 uses the *contains *method as follows
>
> query &= db.t_properties.f_postcode.contains(result)
>
> where *result *is the list of nearby postcodes
>
> Method 2 does the query first and then uses *exclude* to eliminate the 
> unwanted rows as follows
>
> rows.exclude(lambda row: row.f_postcode not in result) 
>
> However, when the list of postcodes is larger (>about 100), both methods 
> are failing. Method 1 appears to fail because of inherent limitations of 
> sqlite (https://sqlite.org/limits.html - SQLITE_LIMIT_VARIABLE_NUMBER - 
> albeit that refers to a limit of 999 rather than 99). Method 2 fails with 
> the message:
>
> <type 'exceptions.RuntimeError'> maximum recursion depth exceeded in cmp
>
> Now, I'm pretty sure that I can solve it by moving to MySQL or another db 
> but I'm pretty sure that I'm not doing the query in the optimal way. Can 
> anyone give any advice as to the correct / most efficient way to accomplish 
> this?
>
> thanks 
> Rob.
>
>

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

Reply via email to