It is not a web2py bug. web2py it is just telling you that GAE cannot do this, because there are no expressions on GAE.
Instead of this: db(db.user.id == session.user_id).update(post_num = db.user.post_num + 1) do db(db.user.id == session.user_id).update(post_num = auth.user.post_num + 1) and you will be fine. On Mar 12, 4:05 am, maki <mak...@gmail.com> wrote: > hi, > > An app works fine on local machine, but an exception occurs when > running on gae, the error is like this: > > Traceback (most recent call last): > File "F:\web2py\deploy\web2py\gluon\restricted.py", line 188, in restricted > exec ccode in environment > File > "F:\web2py\deploy\web2py\applications\init/controllers/default.py:index", > line 257, in <module> > File "F:\web2py\deploy\web2py\gluon\globals.py", line 95, in <lambda> > self._caller = lambda f: f() > File > "F:\web2py\deploy\web2py\applications\init/controllers/default.py:index", > line 33, in index > File "F:\web2py\deploy\web2py\gluon\dal.py", line 4735, in update > return self.db._adapter.update(tablename,self.query,fields) > File "F:\web2py\deploy\web2py\gluon\dal.py", line 2887, in update > setattr(item, field.name, self.represent(value,field.type)) > File "F:\web2py\deploy\web2py\gluon\dal.py", line 2449, in represent > raise SyntaxError, "non supported on GAE" > SyntaxError: non supported on GAE > > line 33 of default.py is like this: > ... > if session.user_id != 0: > db(db.user.id == session.user_id).update(post_num = > db.user.post_num + 1) > ... > the web2py version is 1.93.2, the code is like this: > .... > if isinstance(obj, (Expression, Field)): > raise SyntaxError, "non supported on GAE" > ... > > Is this a web2py bug?