具有非ascii字符的数据库中的Django文件名

dje*_*jen 3 python django utf-8

我正在尝试在Django中动态创建一个文件:

response = HttpResponse(mimetype='text/txt')
response['Content-Disposition'] = 'attachment; filename=%s' % filename # UnicodeEncodeError

response.write('text')

return response
Run Code Online (Sandbox Code Playgroud)

如果我硬编码文件名它可以正常工作,但如果我尝试从包含非ascii字符的DB数据创建文件名(如ó),我会得到一个UnicodeEncodeError异常.如何在不获取异常的情况下使用DB文件名?

sla*_*nic 5

from django.utils.encoding import smart_str
...

 response['Content-Disposition'] = 'attachment; filename=%s' % smart_str(filename)
Run Code Online (Sandbox Code Playgroud)