I had a nice query set up and working that looked for any match between items in a list and records in a list-reference field:
catXtags = [2,4,6,7,9] curr_loc.id = 6 db((db.paths.tags.contains(catXtags)) & (db.paths.locations.contains(curr_loc.id)) I changed db.paths.tags to be a virtual field that constructs the same list of foreign id's dynamically. But now when I run the query I get this error: <type 'exceptions.KeyError'> 'tags' The weird thing is that when I print db.paths.tags in the preceding line I get a nice list of integers. So the key 'tags' does seem to exist in db.paths.fields and the data should be the right format. I'm really not sure what I'm doing wrong! Any help is much appreciated. For reference, the full error traceback is below. Traceback (most recent call last): File "/home/ian/web/web2py/gluon/restricted.py", line 204, in restricted exec ccode in environment File "/home/ian/web/web2py/applications/paideia/controllers/exploring.py" <http://127.0.0.1:8000/admin/default/edit/paideia/controllers/exploring.py>, line 104, in <module> File "/home/ian/web/web2py/gluon/globals.py", line 172, in <lambda> self._caller = lambda f: f() File "/home/ian/web/web2py/gluon/tools.py", line 2533, in f return action(*a, **b) File "/home/ian/web/web2py/applications/paideia/controllers/exploring.py" <http://127.0.0.1:8000/admin/default/edit/paideia/controllers/exploring.py>, line 95, in index return step_init() File "/home/ian/web/web2py/applications/paideia/controllers/exploring.py" <http://127.0.0.1:8000/admin/default/edit/paideia/controllers/exploring.py>, line 21, in step_init path_result = path.pick() File "applications/paideia/modules/paideia_exploring.py", line 196, in pick p = self.find_paths(cat, curr_loc) File "applications/paideia/modules/paideia_exploring.py", line 232, in find_paths catXpaths = db((db.paths.tags.contains(catXtags)) File "/home/ian/web/web2py/gluon/dal.py", line 5542, in __getattr__ return self[key] File "/home/ian/web/web2py/gluon/dal.py", line 5482, in __getitem__ return dict.__getitem__(self, str(key)) KeyError: 'tags'