Загрузка кириллических файлов в Django

Добрый день. Я пишу ресурс для корпоративного портала. Столкнулся с такой проблемой, что после загрузки файлов с кириллицей, пытаюсь их скачать, а Django выдает ошибку пути urls 404 путь к файлу не найден. Подскажите, где я ошибаюсь

Мой models.py:

from django.db import models
from datetime import datetime
from django.contrib.auth.models import User

def user_directory_path(instance, filename):
    return 'user_{0}/{1}'.format(instance.owner.id, instance.name)

class DirectoryItem(models.Model):
    name = models.CharField(max_length=200, default="New Folder", blank=False)
    owner = models.ForeignKey(User, on_delete=models.CASCADE)

    # a parent folder of null/blank would indicate a root folder.
    # A users root folder is created upon registration
    date_created = models.DateTimeField(default=datetime.now)
    is_recycled = models.BooleanField(default=False)

    # auto_now: updates on changes. date_recycled will be last change
    # (Improve - create custom save function)
    date_recycled = models.DateTimeField(auto_now=True)

    is_public = models.BooleanField(default=False)
    is_shared = models.BooleanField(default=False)

    class Meta:
        abstract = True


class Folder(DirectoryItem):
    parent_folder = models.ForeignKey(
        "self", on_delete=models.CASCADE, blank=True, null=True)

    def __str__(self):
        return self.name


class File(DirectoryItem):
    parent_folder = models.ForeignKey(Folder, on_delete=models.CASCADE)

    file_source = models.FileField(upload_to=user_directory_path)
    file_type = models.CharField(max_length=20)

    def __str__(self):
        return self.name

Мой views.py , функция, отвечающая за загрузку файла:

def folders(request, folder_id):
requested_folder_id = folder_id
cur_user_id = request.user.id
requested_folder = Folder.objects.get(id=requested_folder_id)

# Is it the users folder?
if (requested_folder.owner.id != cur_user_id):
    # Does he own the root/some parent folder?
    if (not confirmUserOwnedParent(requested_folder, cur_user_id)):
        # Then he does not have access to it
        raise PermissionDenied

# get all the children of the current_folder
folders = Folder.objects.filter(
    parent_folder=requested_folder_id, is_recycled=False).order_by('name')

files = File.objects.filter(
    parent_folder=requested_folder_id, is_recycled=False).order_by('name')

# breadcrumb trail
bc_trail = []
parent = requested_folder.parent_folder
while (parent):
    bc_trail.insert(0, parent)
    parent = parent.parent_folder

root_folder = Folder.objects.get(
    name=request.user.username,
    owner=request.user,
    parent_folder__isnull=True
)

context = {
    'folders': folders,
    'files': files,
    'root': root_folder,
    'breadcrumbs': bc_trail,
    'current': requested_folder
}

return render(request, 'myfiles/files.html', context)
Вернуться на верх