Hi Massimo I tried to implement Your patch but had some strange module import problems running dev_appserver.
Then I updated web2py from svn trunk. And now everything (?!) is working fine. Thanks for your support. Niels Bjerre On Dec 15, 8:16 pm, mdipierro <[email protected]> wrote: > this is a bug! Could you please run a test for me? > > in gluon/validators.py > > from gluon.contrib.gql import SQLXorable > > and in IS_IN_DB replace > > dd=dict(orderby=', '.join([k for k in self.ks if k!='id'])) > > with > > dd=dict(orderby=SQLXorable(' | '.join([k for k in self.ks if k! > ='id']),None,None)) > > Let me know if this fixes it. Mind that you will have to also add the > indices to index.yaml > > Massimo > > On Dec 15, 12:59 am, notabene <[email protected]> wrote: > > > db.define_table('adr', > > SQLField > > ('name','string',length=32,required=True,requires=IS_NOT_EMPTY()), > > > db.define_table('arr', > > SQLField > > ('name','string',length=32,required=True,requires=IS_NOT_EMPTY()), > > SQLField('sted','reference adr', > > default='0',required=True,requires=IS_NOT_EMPTY()), > > > db.arr.sted.requires=IS_IN_DB(db, 'adr.id', '%(name)s') > > > Gives the following error: (Which goes away if I change the last > > statement to > > db.arr.sted.requires=IS_IN_DB(db, 'adr.id'). > > > ERROR 2008-12-15 06:57:43,774 main.py] Traceback (most recent call > > last): > > File "/home/nb/web2py/gluon/restricted.py", line 62, in restricted > > exec ccode in environment > > File "/home/hosts/googleappengine/web2py/applications/kult/ > > controllers/arr.py:opret", line 67, in <module> > > File "/home/hosts/googleappengine/web2py/gluon/globals.py", line 55, > > in <lambda> > > self._caller=lambda f: f() > > File "/home/hosts/googleappengine/web2py/applications/kult/ > > controllers/arr.py:opret", line 30, in opret > > File "/home/hosts/googleappengine/web2py/applications/T3/modules/ > > t2.py", line 417, in create > > showid=False,col3=col3,_class='t2-create') > > File "/home/hosts/googleappengine/web2py/gluon/sqlhtml.py", line > > 106, in __init__ > > for k,v in field.requires.options(): > > File "/home/hosts/googleappengine/web2py/gluon/validators.py", line > > 150, in options > > self.build_set() > > File "/home/hosts/googleappengine/web2py/gluon/validators.py", line > > 146, in build_set > > records=self.dbset.select(self.dbset._db[self.ktable].ALL,**dd) > > File "/home/hosts/googleappengine/web2py/gluon/contrib/gql.py", line > > 444, in select > > items,tablename,fields=self._select(*fields,**attributes) > > File "/home/hosts/googleappengine/web2py/gluon/contrib/gql.py", line > > 415, in _select > > orders = attributes['orderby'].name.split("|") > > AttributeError: 'str' object has no attribute 'name' > > > On Dec 15, 6:58 am, mdipierro <[email protected]> wrote: > > > > You can use IS_IN_DB(db,'table.id','%(otherfield1)s %(otherfield2)s > > > etc') > > > It works on GAE as on non-GAE. It does not use JOINs. Not sue if this > > > helps. > > > > Massimo > > > > On Dec 14, 12:53 pm, notabene <[email protected]> wrote: > > > > > Web2py (and T2) handles references nicely with a select input-field > > > > > Goggle AppEngine does not support joins. > > > > > I can use IS_IN_DB - but only to select the ID > > > > > Any suggestions on how to support the references in GAE? > > > > > Maybe a variation of the t2.tag_widget using a select field and saving > > > > the ID? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py Web Framework" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

