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 [email protected].
For more options, visit https://groups.google.com/d/optout.