3

こんにちはIamはDjangoデコレータを使用しています。

デコレータからビュー関数に変数を渡したい。

それは可能ですか?私を助けてください。

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

変数をデコレータからビューに渡す必要があります。

@d('hai', 'begin')
def company(request):
   print variable
   return ...

誰もが私を助けてくれます。前もって感謝します

4

1 に答える 1

7

そのようにスコープを操作することはできません。

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):
   ...
于 2012-12-28T06:48:53.750 に答える