If I understand it, it is not that different

result = db(db.Address.City.like('Oklahoma%')).select()

On Feb 9, 2:58 pm, selecta <gr...@delarue-berlin.de> wrote:
> I really like the psql modulehttp://pypi.python.org/pypi/pSQL/0.9.2
> you can do things like
> result = db.Address.City["Oklahoma%"]
>
> at the beginning it was hard for me to learn the web2py dal, now it is
> ok to use it but sometimes I wish i could do things like in psql
>
> On 9 Feb., 19:51, Thadeus Burgess <thade...@thadeusb.com> wrote:
>
> > I remember a post about an ORM layer class on top of DAL, that allowed
> > for dynamic selects django style, I can't find the post though, can
> > anyone remember what it was called?
>
> > -Thadeus
>
> > On Tue, Feb 9, 2010 at 9:11 AM, tiago almeida <tiago.b.alme...@gmail.com> 
> > wrote:
> > > Hello all,
>
> > > I've been thinking about implementing a module that takes a DAL table
> > > definition and generates a class object from that definition. The purpose 
> > > of
> > > this is to use those automatically generated classes in the controllers
> > > instead of accessing the DAL directly. Eg: Creating an instance of that
> > > class could make an insertion in the db transparently; setting attributes 
> > > on
> > > that instance triggers db updates, etc..
> > > One important feature is that every table Row is mapped to an instance of
> > > some class and this layer is completely opaque, i.e. it can't expose any
> > > Rows/Row/Field objects to the client.
>
> > > A more concrete example of whats being pursued:
> > > -----------------
> > > db.define_table( "Person", Field('name') )
> > > db.define_table( "Dog", Field("name"), Field("Owner",db.Person) )
>
> > > createClass(db.Person)
> > > createClass(db.Dog)
>
> > > #and now you can do:
>
> > > p = Person("John")            #selects person with name="John", possibly
> > > throwing exception or creating such a record (have to weigh the pros and
> > > cons)
> > > johns_dogs = p.dog_list    #johns_dogs is a list of Dog instances
> > > johns_dogs[0].name          #returns name of one of the john's dogs.
> > > johns_dogs[0].name = "new name"   #updates this dogs name in db
> > > -----------------
>
> > > I've had some success a this, namely, made a function that takes a Rows
> > > object and returns a list of Storage instances where each storage has the
> > > same attributes as the corresponding Row fields and, whenever the value 
> > > of a
> > > Row's Field is a Sql.Set, it .selects() it and continues recursively until
> > > everything is converted into a big tree of Storage instances.
>
> > > This is where I ask for some help. Ideally I don't want to convert every 
> > > Row
> > > into a Storage, I'd like a Row of table Product (e.g.) to be converted 
> > > into
> > > an instance of class Product (which was automatically generated when table
> > > Product was defined). Yet, I do not know of an easy way to get the Table
> > > from which a specific Row came from. Is it possible without major hacks in
> > > the DAL?
>
> > > Also, since you're at it, what do you think about this? My motivation is
> > > that it gets tiring to be defining helper functions to make the controller
> > > code simpler and then be constantly updating those helper functions 
> > > whenever
> > > the model changes.
>
> > > Thanks a lot in advance,
> > > Tiago
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "web2py-users" group.
> > > To post to this group, send email to web...@googlegroups.com.
> > > To unsubscribe from this group, send email to
> > > web2py+unsubscr...@googlegroups.com.
> > > For more options, visit this group at
> > >http://groups.google.com/group/web2py?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to