for row in tagsummary: print row(count)

On Nov 8, 2:09 am, BrendanC <bren...@gmail.com> wrote:
> I'm trying to retrieve some summary data via an Ajax request with the
> following controller method.
> This is just a simple result set containing a list of tag names and usage
> counts retrieved in a JOIN query. Here's the code:
>
> def gettagsummary():
>     '''
>     Get list of tags and related counts (from tagref table) - user can then
> view by tag
>     (similar to Stack Overflow tag view??)
>     '''
>
>     count = db.tagref.tag.count()
>     tagsummary = db(db.tagref.tag==db.tag.id).select(db.tagref.tag,
> db.tag.name, count, \
>                     groupby=db.tagref.tag)
>
>     return dict(tagsummary=tagsummary)
>
> From my webpage I make an Ajax/XHR request to get this info in json format
> (the request is url: "/search/gettagsummary.json"
>
> This is what the request response  looks like:
>
> {"tagsummary": [
> {"tagref": {"tag": 1}, "tag": {"name": "Places"}, "_extra":
> {"COUNT(tagref.tag)": 4}},
>
> {"tagref": {"tag": 2}, "tag": {"name": "Cars"}, "_extra":
> {"COUNT(tagref.tag)": 2}},
> '
> .
> .
> .
> {"tagref": {"tag": 9}, "tag": {"name": "France"}, "_extra":
> {"COUNT(tagref.tag)": 2}},
> {"tagref": {"tag": 10}, "tag": {"name": "UK"}, "_extra":
> {"COUNT(tagref.tag)": 2}}
> ]}
>
> OK - so far, so good. Now I need to extract the count info in my Ajax
> response - However the count info is not easily (AFAIK) accessible - the
> '_extra' structure is a web2py artifact that looks odd. I'm thinking there
> must be a better way to pass the count info to my view (e.g. {"count":4}.
>
> So how do I change this so I can reference the count info. Do I need to
> change my controller code, or is there some (undocumented) way to reference
> the '_extra' info in the json response.
>
> I can't see anything in the docs on this - so hopefully someone here can
> point me in the right direction here.
>
> TIA,
> BrendanC

Reply via email to