GAE does not allow this query: db.words.word.lower()==trans_form.vars.word.lower()
In SQL this would be ... WHERE LOWER(words.word) = ' value of trans_form.vars.word.lower() ' but GAE has no LOWER. On Dec 31, 4:54 am, "Arun K.Rajeevan" <the1.a...@gmail.com> wrote: > Once again my application runs fine on supplied server with web2py but on > GAE there's a problem. > > Line of code that shows problem is > *candidate > =db(db.words.word.lower()==trans_form.vars.word.lower())(db.words.lang==trans_form.vars.languages).select().first() > * > > where trans_form is a FORM object. > > table : > *db.define_table('words', * > * Field('word', 'string', length=128, notnull=True, > required=True), * > * Field('lang', db.languages, notnull=True), * > * Field('entry_by', db.auth_user, default=auth.user_id, > readable=False, writable=False), * > * migrate=migration)* > > Error shown, when runs over GAE: > > ERROR 2002-01-01 05:48:44,608 restricted.py:151] Traceback (most recent > call last): > File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/restricted.py", > line 188, in restricted > exec ccode in environment > File > "/media/KRA/Evolve/Work/web/google_appengine/VL/applications/init/controllers/forms.py:addtranslation", > line 90, in <module> > File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/globals.py", > line 95, in <lambda> > self._caller = lambda f: f() > *File > "/media/KRA/Evolve/Work/web/google_appengine/VL/applications/init/controllers/forms.py:addtranslation", > line 31, in addtranslation* > File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line > 4499, in select > return self.db._adapter.select(self.query,fields,attributes) > File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line > 2673, in select > (items, tablename, fields) = self.select_raw(query,fields,attributes) > File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line > 2633, in select_raw > filters = self.expand(query) > File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line > 2544, in expand > return expression.op(expression.first, expression.second) > File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line > 2558, in AND > a = self.expand(first) > File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line > 2544, in expand > return expression.op(expression.first, expression.second) > File "/media/KRA/Evolve/Work/web/google_appengine/VL/gluon/dal.py", line > 2565, in EQ > return [GAEF(first.name,'=',self.represent(second,first.type),lambda > a,b:a==b)] > *AttributeError: 'Expression' object has no attribute 'name'* > > *Where I went wrong?*