2017-07-31 67 views
1

我使用django,nginx和gunicorn。Django FileField不能与德语“Umlaut”(ä,ö,ü)合作

在我的模型中,我有一个FileField与生产中的德语“Umlaute”不兼容。

当我尝试上传一个文件(选择文件,按下 “保存”)在/管理与 “变音符”:

UnicodeEncodeError: 'ascii' codec can't encode character '\xe4' in position 27: ordinal not in range(128) 

models.py

class wiki(models.Model): 

    headline = models.CharField(max_length=255) 
    file = models.FileField(null=True, blank=True) 

    def __str__(self): 
     return self.headline 

在开发网络服务器在本地机器上(./manage runserver)它工作正常,所以我认为它与gunicorn或nginx有关,并做了以下更改,但没有成功:

/etc/systemd/system/gunicorn.se起动转矩:

(加入--env LANG = de_DE.UTF-8)

[Unit] 
Description=gunicorn daemon 
After=network.target 

[Service] 
User=django 
Group=www-data 
WorkingDirectory=/opt/django/project 
ExecStart=/opt/django/bin/python3 /opt/django/bin/gunicorn --env LANG=de_DE.UTF-8 --workers 3 --bind unix:/opt/django/gunicorn.sock uhd.wsgi:application 

[Install] 
WantedBy=multi-user.target 

的/ etc/nginx的/位点可用/域

server { 
    charset UTF-8; 
} 

这里有一些信息,我认为可能是有用的:

$区域

LANG=C.UTF-8 
LANGUAGE= 
LC_CTYPE="C.UTF-8" 
LC_NUMERIC="C.UTF-8" 
LC_TIME="C.UTF-8" 
LC_COLLATE="C.UTF-8" 
LC_MONETARY="C.UTF-8" 
LC_MESSAGES="C.UTF-8" 
LC_PAPER="C.UTF-8" 
LC_NAME="C.UTF-8" 
LC_ADDRESS="C.UTF-8" 
LC_TELEPHONE="C.UTF-8" 
LC_MEASUREMENT="C.UTF-8" 
LC_IDENTIFICATION="C.UTF-8" 
LC_ALL=C.UTF-8 

cat/etc/* - release

PRETTY_NAME="Debian GNU/Linux 8 (jessie)" 
NAME="Debian GNU/Linux" 
VERSION_ID="8" 
VERSION="8 (jessie)" 
ID=debian 
HOME_URL="http://www.debian.org/" 
SUPPORT_URL="http://www.debian.org/support" 
BUG_REPORT_URL="https://bugs.debian.org/" 

我很感激任何帮助。如果需要更多信息,请告诉我。

+0

的Python 2.x的吧? 'def __str __(self):'应该是'def __unicode __(self):' – allcaps

+0

实际上它是Python 3.5.3的开发版和Python 3.4.2的生产版。 –

+0

我从不明白为什么开发人员想要为prd和dev使用两种不同的pythons。在你的情况下,它不可能与你的问题有关。但这是不好的做法。安装多个Pythons并不困难。因此,开发和生产**完全相同并不难。 – allcaps

回答

0

我从Debian Jessie(oldstable)升级到Debian Stretch(stable),现在一切正常。

Python从Python 3.4.2升级到Python 3.5.3。 $ locale仍然给出相同的输出,gunicorn和nginx仍然与问题中显示的相同。

$猫的/ etc/* - 释放

PRETTY_NAME="Debian GNU/Linux 9 (stretch)" 
NAME="Debian GNU/Linux" 
VERSION_ID="9" 
VERSION="9 (stretch)" 
ID=debian 
HOME_URL="https://www.debian.org/" 
SUPPORT_URL="https://www.debian.org/support" 
BUG_REPORT_URL="https://bugs.debian.org/" 
相关问题