在 Django 中设置 cookie 时出现内部服务器错误

Internal server error when set cookie in Django

在URL中可以附加参数,例如utm_campaign

在视图中我得到了这个参数:

utm_campaign = request.GET.get('utm_campaign',None)

但是当我想在 cookie 中设置此信息时,我得到 内部服务器错误,没有回溯或其他信息

我正在尝试几种解决方案:

response.set_cookie('utm_campaign',utm_campaign )
response.set_cookie('utm_campaign',utm_campaign .encode('utf-8'))
response.set_cookie('utm_campaign',utm_campaign .encode())
response.set_cookie('utm_campaign',request.GET.get('utm_campaign '))

有什么问题?

问题是,如果我写英文文本或数字 - 一切正常。 如果我尝试写西里尔文本 - 会出现没有详细信息的错误。

解决方案

from urllib import parse
response.set_cookie('utm_campaign', parse.quote(utm_campaign))