... scratch the very last part about the image data not being returned
- just found that in another post here :)
Just need to 'return product.image' instead of a dict :D
So simple, I was over-thinking the problem! lol
Hopefully the solution to my other problem will be just as simple :)
Cheers,
C
On Nov 18, 3:14 pm, "[EMAIL PROTECTED]"
<[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I'm writing a RESTful app and want to expose different aspects of an
> object using different methods depending on part of the URL:
>
> /product/1/overview
>
> should provide text/html from a kid template
>
> /product/1/image
>
> should provide image/jpg from binary data held as part of the model.
>
> I read somewhere (I think in the TurboGears book) that you can return
> tg_format as part of the result dictionary to do this, but its not
> working for me. Here's what I have:
>
> @expose(content_type = "image/jpg", as_format = "image")
> @expose(fragment = True)
> def default(self, *args, **kwargs):
> if len(args) != 2:
> raise Exception("Invalid use of product controller - must
> provide ID and action. You provided %d args: %s" % (len(args), str
> (args)))
> id, action = args
> id = int(id)
> product = Product.get(id)
> if action == 'overview':
> return dict(product = product, tg_template =
> "doublesweb.templates.product_overview")
> elif action == 'details':
> return dict(product = product, tg_template =
> "doublesweb.templates.product_details")
> elif action == 'image':
> response.body = product.image
> return dict(tg_format = "image")
> raise Exception("Unknown action: %s for product ID: %d" %
> (action, id))
>
> It returns the correct content_type when I add ?tg_format=image to the
> URL obtaining the image, but IMHO it would be more elegant to let the
> controller decide what kind of response it wants to give.
>
> The other problem I'm having is that I'm not actually getting the
> image data returned - but that's for another post (unless someone
> spots it and can provide me that info too :)).
>
> Thanks in advance for any help / hints / tips :D
>
> Cheers,
> C
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" 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/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---