Search code examples
pythondjangocookiessetcookie

Internal server error when set cookie in Django


In URL can additional parameters for example like utm_campaign

In view I get this parameters:

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

But when i wanna set this information in cookie I get Internal Server Error without traceback or another information

I was trying several solution:

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 '))

What is the problem?

The problem is that if I write English text or numbers - everything works. If I try write cyrillic text - there is an error without details.

  • Python3
  • CentOs7 (default "utf-8")
  • Django 1.11 (default "utf-8")

Solution

  • Solution

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