我想以编程方式运行django的dumpdata
命令,但是
from django.core.management import call_command
call_command('dumpdata', 'asdf', indent=2, output=filePath)
与Unable to serialize database: 'ascii' codec can't encode character 'xdf' in position 83: ordinal not in range(128)
失效
从命令行运行python3 manage.py dumpdata --indent=2 --output=dump.json.gz asdf
工作得很好!
为什么不能用call_command()
?
- python version:
3.6.9
django version: $LANG
设置为en_US.UTF-8
$LC_ALL
设置为en_US.UTF-8
$LC_CTYPE
设置为UTF-8
3.2.13
解决方案:必须更新web服务器配置以使用正确的区域设置。(在我的例子中,编辑/etc/apache2/envvars
以使用默认的系统语言环境。)