django mezzanine对非ascii缓存名称的评论

时间:2017-10-06 12:04:51

标签: django python-3.6 mezzanine

mezzanine注释表单中提出的问题,该表单将作者姓名存储在响应缓存中(如下所述):

set_cookie(response, "mezzanine-comment-name", post_data.get("name"))

调用django set_cookie函数:

response.set_cookie(name, value, expires=expires, secure=secure)

因此,如果作者的名字包含非ascii字符,服务器会引发一个众所周知的问题(我用nginx和django本地服务器测试过它):

UnicodeEncodeError: 'ascii' codec can't encode characters in position ...: ordinal not in range(128)

我还尝试修改夹层源代码并将.encode()放在post_data.get("name")之后,但response.set_cookie的第一行中有一个奇怪的行会撤消编码!

value = force_str(value)

0 个答案:

没有答案