Django ImageField意外地更改了文件名中的一些字符

时间:2017-11-30 18:22:54

标签: python django unicode django-models arabic

我在我的模型中使用jcenter字段,其中包含上传路径的自定义函数,如下所示:

ImageField

其中featured_image = models.ImageField( upload_to=custom_path, blank=True, null=True) 定义如下:

custom_path

问题在于,当我上传名称为def custom_path(instance, filename): return 'post_images/{0}/{1}/{2}/{3}'.format(instance.publication_datetime.strftime('%Y'), instance.publication_datetime.strftime('%b'), instance.slug, filename) 的文件(使用阿拉伯语)时,名称会转换为"سائل-أن",其中包含两个与原始名称不同的字符({{ 1}}转换为"سايل-ان""ئـ"转换为"يـ"

我认为问题在于Django如何获取发送到"أ"的{​​{1}}参数,因为如果"ا"具有相同的“有问题”名称,则不会修改filename custom_path)。

转换后的字母是普通的阿拉伯字母,在互联网上使用了数百万次。

我在Django文档和源代码中搜索过,但我不知道问题的原因。

修改

我在Ubuntu服务器上运行我的代码。

0 个答案:

没有答案