alvaro, i guess i cannot add relations to my posts table as Field
('relations', db.relations) since the relations table is not defined
before the posts table.

before using the current query, i have tried the query that you guys
provided. my main problem with that query is that it selects all the
posts in the relations table and each table is selected more than
once. so i need some guidance here to print the post title and all of
its categories.

thanks.


On Oct 7, 6:22 am, mdipierro <[email protected]> wrote:
> Sorry I had to guess. Now that I know the tables:
>
> items = db(db.posts.id==db.relations.post)
> (db.relations.category==db.categories.id).select()
>
> On Oct 6, 9:36 pm, Mengu <[email protected]> wrote:
>
> > i got this error for the query:
>
> > >>> items = db(db.posts.relations.category==db.categories.id).select()
>
> > Traceback (most recent call last):
> >   File "<console>", line 1, in <module>
> >   File "/home/mengu/web2py/gluon/sql.py", line 1265, in __getattr__
> >     return dict.__getitem__(self,key)
> > KeyError: 'relations'
>
> > here is my table definitions:
> > db.define_table('posts',
> >     Field('title', 'string', length=200),
> >     Field('slug', 'string', length=200),
> >     Field('body', 'text'),
> >     Field('html', 'text'),
> >     Field('dateline', 'datetime', default=request.now,
> > writable=False),
> >     Field('user', db.auth_user)
> > )
>
> > db.define_table('comments',
> >     Field('post', db.posts),
> >     Field('author', 'string'),
> >     Field('body', 'string', length=500),
> >     Field('dateline', 'datetime', default=request.now, writable=False)
> > )
>
> > db.define_table('categories',
> >     Field('title', 'string'),
> >     Field('slug', 'string', length=200),
> >     Field('postcount', 'integer')
> > )
>
> > db.define_table('relations',
> >     Field('post', db.posts),
> >     Field('category', db.categories)
> > )
>
> > On Oct 7, 4:43 am, mdipierro <[email protected]> wrote:
>
> > > items = db(dd.posts.relations.category==db.categories.id).select()
> > > for item in items:
> > >     print item.posts.id,'belongs',item.categories.title
>
> > > On Oct 6, 8:23 pm, Mengu <[email protected]> wrote:
>
> > > > massimo,
>
> > > > actually this wasn't what i am asking, but thank you for showing
> > > > another way for it. i have my controller named as "post" and i have
> > > > the action "view". i currently have my routes_in like the 
> > > > following:http://mengu.pastebin.com/m698f1726thisisworkingvery well 
> > > > however
> > > > please let me know if this is not necessary or a proper way.
>
> > > > any recommendations on the query?http://mengu.pastebin.com/m111e1a47
> > > > i could make something like:
> > > > posts = db().select(db.posts.ALL)
> > > > postcategories = {}
> > > > for post in posts:
> > > >     postcategories[post.id] = {}
> > > >     for relation in post.relations.select():
> > > >         category = db.categories[relation.category]
> > > >         postcategories[post.id][category.id] = category.title
>
> > > > however this makes tons of queries for each post which is something i
> > > > really don't want.
>
> > > > ----
>
> > > > dear alvaro,
>
> > > > i ofcourse would like to produce the software with you, i'd enjoy
> > > > that. however i currently have my time very lack so i'm not working on
> > > > the product all the time.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" 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