Hello
I've found solution and would like to hear your opinion.
It's very basic but could be easily improved.
I've just added next method to my BaseController:
class BaseController(TGController):
........
def _perform_call(self, func, args):
if (func != self.routes_placeholder):
if hasattr(self, '_before'):
self._before(*args, **args)
r = self._call(func, args, remainder=None)
if hasattr(self, '_after'):
self._after(*args, **args)
return r
else:
return TGController._perform_call(self, func, args)
Could it be added to original TG code?
Понеділок, 9 липня 2012 р. 14:42:43 UTC+3 користувач Artur Gavkaliuk
написав:
>
> Thank you for quick answer.
> I'm wondering if there is a way to set exact method of controller which
> should handle request inside _lookup.
> And, are _lookup methods called hierarchically (particularly, will root
> _lookup be called if the one from mounted controller failed)?
>
> Понеділок, 9 липня 2012 р. 14:28:23 UTC+3 користувач Alessandro Molina
> написав:
>>
>> I'm not a routes user, so my answer might be somehow wrong, it is
>> mostly based on the knowledge that I have of the TurboGears routing
>> system.
>>
>> The routes integration was not used by TurboGears itself, was there
>> due to Pylons and was hijacked to always route to the RootController
>> which was then in charge of the real routing. This is the reason why
>> you can only route to Pylons controller using routes and not to
>> TurboGears one, losing so the TurboGears features like validation,
>> expose and so on. If you add routes that route to a TurboGears
>> controller the controller itself will try to route them again,
>> obviously doing the wrong thing
>>
>> Somehow you might be able to use routes with validation and expose by
>> creating a Pylons controller that inherits from
>> tg.controllers.decoratedcontroller.DecoratedController but keep in
>> mind that this might break any time in the future.
>>
>> The TurboGears way to manage regular expression based routing is to
>> handle them inside the _lookup method and return the actual controller
>> instance that has to handle them with the remaining part of the url
>> for which the dispatch has to continue from the returned controller.
>>
>> On Mon, Jul 9, 2012 at 1:13 PM, Artur Gavkaliuk <[email protected]>
>> wrote:
>> > Hello
>> > This question was raised several times but I didn't see clear and
>> up-to-date
>> > answer.
>> > So, is there any convenient way to map TGController subclass with
>> custom
>> > url?
>> > Pylons WSGIController is mapped easily but I would like to have @expose
>> > decorator working.
>> > I'm following 'classic' example from app_config:
>> > # Add a Samples route
>> > map.connect('/samples/', controller='samples',
>> > action=index)
>> >
>> > # Setup a default route for the root of object
>> dispatch
>> > map.connect('*url', controller='root',
>> > action='routes_placeholder')
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups
>> > "TurboGears" group.
>> > To view this discussion on the web visit
>> > https://groups.google.com/d/msg/turbogears/-/8yXhtPQj6zUJ.
>> > 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.
>>
>
--
You received this message because you are subscribed to the Google Groups
"TurboGears" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/turbogears/-/5RFVdh94nf8J.
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.