[Grok-dev] grok.url() requiring a request object a bit inconvenient
Jan-Wijbrand Kolman
janwijbrand at gmail.com
Sun Nov 1 09:03:52 EST 2009
Sebastian Ware wrote:
> I find it a bit inconvenient that you have to supply a request object
> with the grok.url() method. If I want to create an url during an event
> to for example send an email, it would be great if I could call...
>
> grok.url(obj)
>
> ....without having to supply a request object.
>
> Mvh Sebastian
-1 for not having to pass a request object to the grok.url() helper
function.
As said in this thread: the request contain crucial information about
how to compute the URL.
+1 for a convenience function to get to the current request object in a
formalized way.
Even though the ZTK does not really promote retrieving the request
object "yourself" (and I think rightfully so!) there are situations
where you really really want to be able to get the request anyway.
Having such a convenience method makes calling grok.url() somewhat easier..:
grok.url(grok.global_request(), obj)
...but still we maintain grok.url()'s explicitness and testability.
There're a couple of packages out there that do get to the "global"
request. We should look that these packages for inspiration when
implementing grok.global_request(). On the top of my head there is:
* hurry.resource (or is it hurry.zope.resource)
* zope.globalrequest
There're probably more..
Having said this, I have to remark that I only rarely need to get to the
request "myself". To me it seems most often, with the right factoring,
the request is just there in the view-like components.
regards,
jw
More information about the Grok-dev
mailing list