2016-10-14 3 views
1

장고를, 임 템플릿을 렌더링하고이 코드와 같은 시간에 쿠키를 보내려고 :set_cookie()없는 한 필요한 위치 인수 : '자기'

template = loader.get_template('list.html') 
context = {'documents': documents, 'form': form} 

if ('user') not in request.COOKIES: 
    id_user = ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(30)) 
    HttpResponse.set_cookie(key='user', value=id_user, max_age=63072000) 

return HttpResponse(template.render(context, request)) 

하지만 오류를 얻을 :

TypeError at /myapp/list/

set_cookie() missing 1 required positional argument: 'self'

나는 documentation을 확인했지만 그 해결책을 찾지 못했습니다. 도와주세요 :)

+1

:'HttpResponse.set_cookie (키 = 'user', value = id_user, max_age = 63072000)'HttpResponse는 클래스 또는 클래스 (객체)의 인스턴스입니까? –

답변

3

닫기 - HttpResponse는 클래스의 인스턴스가 아니라 클래스입니다. 마지막 줄 하나를 만들고 그것을 반환 - 그래서 당신의 이전 행은 해당 인스턴스에 따라 행동 할 필요가 ...

시도 (테스트되지 않은 코드) :이 라인에서

myResponse = HttpResponse(template.render(context, request)) 
myResponse.set_cookie(...) 
return myResponse 
+1

감사합니다. 나는 항상 응답을 엉망으로 만든다 ... – Rashomon