2014-10-29 60 views
0

考慮以下視圖功能:裝飾:如何獲得原函數變量

@validate_credentials 
def validate_user(request): 
    return HttpResponse('OK') 

我將如何獲得在包裝中值request.GET中?

def validate_credentials(view_function): 
    def wrapped_view(*args, **kwargs): 
     # request = ? 
     return view_function(*args, **kwargs) 
    return wrapped_view 

回答

2

根據功能是否被稱爲validate_user(req)validate_user(request=req)這將是argskwargs,分別。以下行將確保參數(或None)分配給request

request = kwargs.get('request', args[0] if args else None)