File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -122,6 +122,17 @@ def index():
122
122
"email$":"%local%"
123
123
}
124
124
}
125
+ }''' ,
126
+ },
127
+ {
128
+ "label" :"Array query: association query one to many" ,
129
+ "value" :'''{
130
+ "moment": {},
131
+ "[]": {
132
+ "comment": {
133
+ "moment_id@": "moment/id"
134
+ }
135
+ }
125
136
}''' ,
126
137
},
127
138
{
Original file line number Diff line number Diff line change @@ -55,6 +55,8 @@ def get(self):
55
55
rsp = self ._get_one (key )
56
56
if rsp : return rsp
57
57
self ._apply_vars ()
58
+ except UliwebError as e :
59
+ return json ({"code" :400 ,"msg" :str (e )})
58
60
except Exception as e :
59
61
err = "exception when handling 'apijson get': %s" % (e )
60
62
log .error (err )
@@ -230,6 +232,20 @@ def _get_array(self,key):
230
232
231
233
model_expr = model_param .get ("@expr" )
232
234
235
+ #update reference
236
+ ref_fields = []
237
+ refs = {}
238
+ for n in model_param :
239
+ if n [- 1 ]== "@" :
240
+ ref_fields .append (n )
241
+ col_name = n [:- 1 ]
242
+ path = model_param [n ]
243
+ refs [col_name ] = self ._ref_get (path )
244
+ if ref_fields :
245
+ for i in ref_fields :
246
+ del model_param [i ]
247
+ model_param .update (refs )
248
+
233
249
if model_expr :
234
250
c = self ._expr (model ,model_param ,model_expr )
235
251
q = q .filter (c )
You can’t perform that action at this time.
0 commit comments