2012-02-22 11 views

Odpowiedz

22

request nie jest argumentem kluczowym dla widoku, jest to pierwszy argument pozycyjny. Możesz uzyskać do niego dostęp pod numerem args[0].

def foo_decorator(function): 
    @wraps(function) 
    def decorator(*args, **kwargs): 
     print args[0] 
     return function(*args, **kwargs) 

    return decorator 

Polecam, zmienić podpis funkcji obejmuje request wyraźnie:

def foo_decorator(function): 
    @wraps(function) 
    def decorator(request, *args, **kwargs): 
     print request 
     return function(request, *args, **kwargs) 

    return decorator 
+0

Myślę, że zaginęło ** przed kwargs podczas wywoływania "funkcji" –

+0

Dzięki Patrik, naprawione teraz. – Alasdair

4

Żądanie nie jest przekazywane jako argument słowa kluczowego. Jest to args, a nie kwargs.

+1

Hah, ja po prostu sobie z tego sprawę po spędzeniu dobrą godzinę mylić. Żarówka wreszcie poszła w górę, że 'args' może zawierać rzeczy, których nie ma w' kwargs'! Jak głupio ode mnie. Dzięki! –