set_cookie()缺少1个必要的位置参数:' self'

时间:2016-10-14 10:17:42

标签: python django httpcookie

在Django中,我尝试使用此代码渲染模板并同时发送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))

但我收到错误:

  

/ myapp / list /

上的TypeError      

set_cookie()缺少1个必要的位置参数:' self'

我检查了documentation,但我没有找到解决方案。 请帮帮我:)。

2 个答案:

答案 0 :(得分:3)

关闭 - HttpResponse是类,而不是类的实例。最后一行是创建一个并返回它 - 所以你的早期行需要对该实例进行操作...

尝试(未经测试的代码):

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

答案 1 :(得分:-1)

def setcookie(request):
    html=HttpResponse( '<h1>Salom Django</h1>')
    html.set_cookie(key='user',value='Hello,you just configured your first Cookie',max_age=None)
    return html