From a2663fc8dd9fe6f4a5f9e85e9b23a79cd0c4ca84 Mon Sep 17 00:00:00 2001 From: mdipierro Date: Mon, 14 Jan 2013 09:18:43 -0600 Subject: [PATCH] parse_as_rest patch, thanks Denes --- VERSION | 2 +- gluon/dal.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/VERSION b/VERSION index 5dfa5b06..0833870b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -Version 2.4.1-alpha.2+timestamp.2013.01.13.13.14.47 +Version 2.4.1-alpha.2+timestamp.2013.01.14.09.18.01 diff --git a/gluon/dal.py b/gluon/dal.py index 5cdd8adb..8e58674c 100644 --- a/gluon/dal.py +++ b/gluon/dal.py @@ -7351,15 +7351,19 @@ def index(): ref = tag[tag.find('[')+1:-1] if '.' in ref and otable: table,field = ref.split('.') - # print table,field + selfld = '_id' + if db[table][field].type.startswith('reference '): + refs = [ x.name for x in db[otable] if x.type == db[table][field].type ] + if refs: + selfld = refs[0] if nested_select: try: - dbset=db(db[table][field].belongs(dbset._select(db[otable]._id))) + dbset=db(db[table][field].belongs(dbset._select(db[otable][selfld]))) except ValueError: return Row({'status':400,'pattern':pattern, 'error':'invalid path','response':None}) else: - items = [item.id for item in dbset.select(db[otable]._id)] + items = [item.id for item in dbset.select(db[otable][selfld])] dbset=db(db[table][field].belongs(items)) else: table = ref