Changes between Version 8 and Version 9 of ShortcutSyntaxIdeas


Ignore:
Timestamp:
09/21/2005 01:03:58 PM (10 years ago)
Author:
brantley (deadwisdom@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ShortcutSyntaxIdeas

    v8 v9  
    8686{{{
    8787#!python
    88 class PageException(Exception):
    89     def __init__(self, arg):
    90         self.arg = arg
    91    
    92     def __call__(self):
    93         pass
    94 
    95 class HttpResponseRedirect(PageException):   
    96     def __call__(self):
    97         return httpwrappers.HttpResponseRedirect(self.arg)
    98 
    99 def page(template, **decorator_args):
     88def page(template, context=None, **decorator_args):
    10089    def _wrapper(fn):
    10190        def _innerWrapper(request, **args):
    102             if (template):
    103                 tmplt = template_loader.get_template(template)
    104                 context_dict = decorator_args.copy()
    105             try:
    106                 for i in fn(request, **args):
    107                     context_dict.update(i)
    108                 context = Context(request, context_dict)
    109                 return httpwrappers.HttpResponse(tmplt.render(context))
    110             except PageException, e:
    111                 return e()
     91            for i in fn(request, **args):
     92                if isinstance(i, httpwrappers.HttpResponse):
     93                    return i
     94                if type(i) == type(()):
     95                    context_dict[i[0]] = i[1]
     96                else:
     97                    context_dict.update(i)           
     98            return load_and_render(template, context_dict, context=context)
    11299           
    113100        return _innerWrapper
    114101    return _wrapper
     102
    115103}}}
    116104
Back to Top