【问题标题】:set_cookie() missing 1 required positional argument: 'self'set_cookie() 缺少 1 个必需的位置参数:'self'
【发布时间】:2017-02-23 17:48:30
【问题描述】:

在 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/ 处的类型错误

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

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

【问题讨论】:

  • 这一行中:HttpResponse.set_cookie(key='user', value=id_user, max_age=63072000) HttpResponse 是类还是类(对象)的实例?

标签: python django httpcookie


【解决方案1】:

Close - HttpResponse 是类,而不是类的实例。最后一行是创建一个并返回它 - 所以你前面的行需要对该实例采取行动......

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

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

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

      猜你喜欢
      • 2021-12-15
      • 2023-02-06
      • 2021-09-15
      • 2013-07-06
      • 2022-01-05
      • 2017-03-28
      • 2020-01-07
      • 2019-09-26
      相关资源
      最近更新 更多