2016-10-14 13 views
1

テンプレートをレンダリングし、このコードで同時にクッキーを送信しよう:set_cookie(1つの)必要な位置引数行方不明:ジャンゴ、イムで「自己」

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はクラスであり、クラスのインスタンスではありません。最後の行は1を作成し、それを返している - ので、あなたの以前の行は、そのインスタンスに基づいて行動する必要があります...

試し(未テストコード):この行で

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

ありがとうございました!私はいつもその反応を混乱させる... – Rashomon

関連する問題