Имя файла преобразуется из юникода в ascii

У меня есть модель django с unicode FileField, которую я сериализую с помощью django rest framework, и значения FileField преобразуются в ascii или другую кодировку, которая не содержит многих символов из имени файла.

Все остальные поля, содержащие символы Unicode, остаются неизменными, преобразуется только поле файла. Я не видел ничего об этом в документации или в stack overflow.

Я пробовал явно указывать кодировку сериализатора, например: # -- coding: utf-8 -- #, но ничего не изменилось. Нужно ли мне самостоятельно объявить поле в сериализаторе с правильной кодировкой? Если да, то как это сделать?

Вот сериализатор:

class UploadModelSerializer(serializers.ModelSerializer):
class Meta:
    model = models.DatauploadUploadmodel
    fields = '__all__'

Вот модель:

class DatauploadUploadmodel(models.Model):
table = models.CharField(max_length=50)
file = models.FileField(upload_to='upload_files/', max_length=200 )
user_id = models.IntegerField()
is_new_table = models.BooleanField(blank=True, null=True)
skiprows = models.IntegerField(blank=True, null=True)
status_description = models.CharField(
    max_length=100, default="Feldolgozásra vár", blank=True, null=True)
status = models.CharField(max_length=100, blank=True, null=True)
upload_timestamp = models.DateTimeField()
mode = models.TextField()

class Meta:
    managed = False
    db_table = 'dataupload_uploadmodel'

Вот такой вид:

class UploadmodelList(generics.ListCreateAPIView):
queryset = models.DatauploadUploadmodel.objects.all()
serializer_class = serializers.UploadModelSerializer
permission_classes = [AuthorAllUser]

Вот как выглядит имя файла в api:

k%C3%B6lts%C3%A9gek-2022-09-091.xlsx

А вот как это выглядит в базе данных:

költségek-2022-09-09.xlsx

Вернуться на верх