Django автоматическая загрузка файлов: [WinError 123] The filename, directory name, or volume label syntax is incorrect C:\\path\to\folder\C:

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

Модель django выглядит следующим образом:

class Version(models.Model):
    id = models.AutoField(primary_key = True)
    file = models.FileField(upload_to = history_directory_path, db_column = 'file', max_length = 500)
    filename = models.CharField(default = '', max_length = 100, db_column = 'filename')
    date = models.DateTimeField(auto_now_add = True, db_column = 'date)
    version_num = models.IntegerField(null = True, blank = True)

history_directory_path - это функция, которая создает папку, используя имя файла и номер его версии. Часть моего скрипта автоматической загрузки (в этом примере только для 1 файла, я помещу его в цикл, когда он начнет работать) выглядит следующим образом:

from django.core.files import File
from myapp.models import Version
import os
import glob

BASE_PATH = r'C:\path\to\folder_to_be_monitored'
files = [os.path.basename(x) for x in glob.glob(BASE_PATH + '/*.pdf')]

filename = files[0]
f = open(os.path.join(BASE_PATH, filename), 'rb')
my_file = File(f)

version = Version(file = my_file, filename = filename, version_num = 1)
version.save()

Выполняя последнюю команду, я получаю

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: 'C:\\Users\\user_name\\PycharmProjects\\project\\project\\media\\documents\\history\\filename\\version_0\\C:'

Я прочитал много вопросов о сохранении файлов в файловое поле в django (а также прочитал соответствующую документацию), но я не смог найти рабочего решения для этого. И я не понимаю, как C: попал в конец пути в сообщении об ошибке

Можете ли вы, пожалуйста, дать мне некоторые указания или указать, где я ошибся?

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