Django装饰器将变量传递给视图

Raj*_*aji 2 django decorator

嗨,我使用Django装饰器.

我想将一个变量从装饰器传递给views函数.

是否可能意味着请帮帮我..

def d(msg='my default message', alt="none"):
    def decorator(func):
        def newfn(request, **kwargs):
            if msg and alt:
               variable = "Read Only"
            return func(request, **kwargs)
        return newfn
    return decorator
Run Code Online (Sandbox Code Playgroud)

我希望变量从装饰器传递到视图.

@d('hai', 'begin')
def company(request):
   print variable
   return ...
Run Code Online (Sandbox Code Playgroud)

任何人帮助我.提前致谢

Ign*_*ams 6

你无法以这种方式操纵范围.

def d(msg='my default message', alt="none"):
    def decorator(func):
        def newfn(request, **kwargs):
            if msg and alt:
               kwargs['variable'] = "Read Only"
            return func(request, **kwargs)
        return newfn
    return decorator

@d('hai', 'begin')
def company(request, variable):
   ...
Run Code Online (Sandbox Code Playgroud)