On Sat, Jun 4, 2011 at 7:22 PM, Chris McDonough <[email protected]> wrote:
>
> On Fri, 2011-06-03 at 09:37 -0700, Phenex wrote:
>> I will try to explain my quite special problem in in a few word,
>> please excause my bad english...
>> All i want is the modul-name of the view that calls the template
>> renderer, wich of cause happen inside a view.
>> The clou is, that these views can be in different modules (plugins),
>> because this app is goin to be an pluggable framework on top of
>> pyramid.
>> To know wich template is to be loaded, the loader needs to know from
>> what plugin the render function had been called. The template engine
>> is jinja2, but that shoudn't matter, to do the magic a special loader
>> has to be written (and this needs to know about this plugin).
>>
>> The whole thing is a rewrite of an programm i did make in pylons. Back
>> than i used request.environ['pylons.routes_dict']
>> ['controller'].split(':', 1) to get the moduls name. I searched in in
>> doku, an tried for hours but didn't find a way to get this
>> information, hope anyone has an idea. I can access config an request,
>> but didn't find anything usefull.
>
> If you make all of your views into classes, you can use something like
> this:
>
> class MyView(object):
>    def __init__(self, request):
>        self.request = request
>
>    @view_config(... your view configuration ....)
>    def aview(self):
>        module = self.__class__.__module__ # for example, 'myapp.views'
>
> I wouldn't suggest trying to do this with views that are functions; it's
> too painful.

You can also put the 'module' line as 'self.module' in the __init__
method in a base class so that it would be available for all.

Function objects have a '__module__' attribute which is the same thing.

-- 
Mike Orr <[email protected]>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" 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/pylons-discuss?hl=en.

Reply via email to