I will wait for a patch from Dave. He knows more than I know about
this.

Massimo

On Jun 27, 10:44 am, Carles Gonzalez <carle...@gmail.com> wrote:
> One word: WOW!
>
> I look forward to the next message, this way gae is really appeling.
> And your way of teaching is fun, really!.
>
> Moreover, Massimo, can't this method be the default behaviour to
> IS_IN_DB when running on gae?
> I't seems a good fit. Just my 2 cents.
>
> On Sun, Jun 27, 2010 at 4:36 PM, dlypka <dly...@gmail.com> wrote:
> > Assuming you have
> > try:
> >    from gluon.contrib.gql import *         # if running on Google App
> > Engine
> > except:
> >    db=SQLDB('sqlite://storage.db')         # if not, use SQLite or
> > other DB - Used by T2
> >    datastoretype = 'SQL'
> > else:
> >    db=GQLDB()                              # connect to Googl
> >    datastoretype = 'GAE'
>
> > # So now, db is the GAE db
>
> > # To use those Collections in the Reference properites, you need to
> > insert NATIVE GAE references,
> > # so you need to somehow find the GAE entity instance reference given
> > a web2py sql row
>
> > # Here is the 'Stargate / wormhole' code which takes you from web2py
> > back down into the native GAE Datastore alternate universe:
>
> > # So if you have a web2py table name 'ChildTable':
>
> >    web2pyChildTableClass = db.ChildTable  # gives the web2py Table
> > class
>
> >    theNativeGAEChildTableClass = web2pyChildTableClass._tableobj #
> > magic... into GAE
>
> > # ================================================================
>
> > # Now do a native GAE query to find the native GAE instance so it
> > # can be put into the Reference collection:
>
> >    nativeGAE ChildTableQuery = theNativeGAEChildTableClass.all()
>
> >    nativeGAEChildTableQuery.filter('id =', 25) # get for id = 25
>
> >    nativeresults = nativeGAEChildTableQuery.fetch(limit=1)
>
> >    myGAENativeChild = nativeresults[0]
>
> > # Now myGAENativeChild can be inserted into the native GAE Reference
> > collection
>
> > - Dave Lypka
>
> > On Jun 26, 5:48 am, Carles Gonzalez <carle...@gmail.com> wrote:
> >> Very interesting, i didn't know about collection_name and the associated 
> >> query.
>
> >> You are shedding some light on doing relationships the GAE way.
>
> >> Thanks again.
>
> >> On Sat, Jun 26, 2010 at 8:52 AM, dlypka <dly...@gmail.com> wrote:
>
> >> > For starters:
>
> >> > Refer to
> >> >http://arbingersys.blogspot.com/2008/04/google-app-engine-one-to-many...
>
> >> > And Here is the posting about using native GAE properties
>
> >> >http://groups.google.com/group/web2py/browse_thread/thread/7112ef7dee...
>
> >> > So for example you would do
>
> >> > from gluon.contrib.gql import gae
> >> > :
> >> > :
> >> >   db.define_table('ChildItem',
> >> >                                # NOTE: web2py provides the 'id'
> >> > column automatically
> >> >                               db.Field('idParentFolder','reference
> >> > MyParent'),
> >> >                               db.Field('name','text'),
> >> >                               db.Field('gaeParentInstance',
> >> > gae.ReferenceProperty(MyParent,
> >> >                                              required=False,
> >> > collection_name='linksFromChildItemToParent')))
>
> >> >                           )
>
> >> > and define the parent class in a similar fashion.
>
> >> > It is also necessary to add some plumbing to find and track the native
> >> > GAE references
> >> > which lie underneath the web2py sql objects because the native refs
> >> > have to be
> >> > put into the collections.
>
> >> > I'll provide more details in some followup posts.
>
> >> > On Jun 25, 2:48 pm, Carles <carle...@gmail.com> wrote:
> >> >> Thanks a lot Dave.
>
> >> >> There isn't a deadline, tale your time :)
>
> >> >> Carles
>
> >> >> El 25/06/2010, a las 20:42, dlypka <dly...@gmail.com> escribió:
>
> >> >> > OK will do - please give me a few days...
>
> >> >> > On Jun 24, 8:43 pm, Carles Gonzalez <carle...@gmail.com> wrote:
> >> >> >> Not to be annoying, but can you post an example?
>
> >> >> >> Just to organize the things in my head...
>
> >> >> >> Thanks again.
>
> >> >> >> On Fri, Jun 25, 2010 at 2:41 AM, Carles Gonzalez 
> >> >> >> <carle...@gmail.com> wrote:
> >> >> >>> Very interesting!
>
> >> >> >>> I'll try tomorrow.
>
> >> >> >>> Thanks a lot, Dave.
>
> >> >> >>> On Fri, Jun 25, 2010 at 1:21 AM, dlypka <dly...@gmail.com> wrote:
> >> >> >>>> I've done a parent - to - many child GAE / web2py implementation 
> >> >> >>>> using
> >> >> >>>> SelfReference  fields (or you can use Reference as well) using the
> >> >> >>>> technique for adding native GAE fields into a web2py table 
> >> >> >>>> definition.
>
> >> >> >>>> It gives fantastic retrieval performance because GAE automatically
> >> >> >>>> adds the link from the child back into the parent's reference list
> >> >> >>>> at the time you create each child.   When you later query for the
> >> >> >>>> parent, voila GAE retrieves all the child entities along with it in
> >> >> >>>> one backend call!
>
> >> >> >>>> Hopefully this technique is relevant to your application.
>
> >> >> >>>> I also develop some other tricks for inheriting native GAE classes
> >> >> >>>> into your web2py model, though
> >> >> >>>> this is less attractive perhaps now that GAE native properties can 
> >> >> >>>> be
> >> >> >>>> directly declared in web2py tables.
>
> >> >> >>>> - Dave Lypka.
>
> >> >> >>>> On Jun 21, 10:25 am, Carles Gonzalez <carle...@gmail.com> wrote:
> >> >> >>>>> Hi,
>
> >> >> >>>>> I have developed some applications in web2py, and 2 are running
> >> >> >>>>> currently in gae, but now i have serious problem.
>
> >> >> >>>>> My current project is a social application, and when i design
> >> >> >>>>> (example) the tables to make an user follow the actions other user
> >> >> >>>>> (twitter like) I find that many-to-many relationships in 
> >> >> >>>>> app-engine
> >> >> >>>>> are not easily supported.
>
> >> >> >>>>> From my understanding using the tools present in web2py right i 
> >> >> >>>>> would
> >> >> >>>>> need to do a lot of processing in memory, an that would hurt
> >> >> >>>>> performance greatly.
>
> >> >> >>>>> The pattern proposed by app store developers uses lists and 
> >> >> >>>>> "parent"
> >> >> >>>>> relationship:
>
> >> >> >>>>> class Message(db.Model):
> >> >> >>>>>     sender = db.StringProperty()
> >> >> >>>>>     body = db.TextProperty()
>
> >> >> >>>>> class MessageIndex(db.Model):
> >> >> >>>>>     receivers = db.StringListProperty()
>
> >> >> >>>>> indexes = MessageIndex.all(keys_only = True).filter('receivers = 
> >> >> >>>>> ', user_id)
> >> >> >>>>> keys = [k.parent() for k in indexes)
> >> >> >>>>> messages = db.get(keys)
>
> >> >> >>>>> For using that pattern in web2py I would need a method for 
> >> >> >>>>> specifying
> >> >> >>>>> the parent of a model instance. Can I specify that relationship 
> >> >> >>>>> using
> >> >> >>>>> any method I don't know? If not, would it be hard to implement?
>
> >> >> >>>>> Thanks in advance!

Reply via email to