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
-~----------~----~----~----~------~----~------~--~---

Reply via email to