On Fri, 01 Feb 2008 19:16:12 -0000, Daniel Fetchinson  
<[EMAIL PROTECTED]> wrote:

>> > Sorry for the long subject line, it pretty much says (asks) it all.
>> >
>> > This would be useful in situations where several controller methods
>> > use the same template but the actual appearance differs slightly from
>> > method to method. Is it possible?
>>
>> I imagine it will be tricky, if possible at all. This page has one
>> approach:
>>
>> http://mail.python.org/pipermail/python-list/2003-May/205437.html
>>
>> Why not just be explicit and pass in an additional argument to the
>> template?
>
> Sure, if it can not be done in a clean and nice way that's what I'll
> do, well, that's what I'm currently doing already. The link you sent
> is indeed talking about this issue but is too hackish and doesn't
> qualify for "clean and nice" :)

how about a decorator, something like:

def tell_template_this_controller(func):
     def _func(*args, **kw):
         d = return func(*args, **kw)
         d['this_controller'] = func.__name__
     return _func


Then use like:

@expose(template='.templates.whatever')
@tell_template_this_controller
def controller_1(self):
     # do stuff
     return dict(...)


@expose(template='.templates.whatever')
@tell_template_this_controller
def controller_2(self):
     # do stuff
     return dict(...)



and in the whatever template:

<p>Hello from the <span py:content="this_controller" /> controller!</p>


(code untested)

Nick

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to