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