Django позволяет мне корректно сохранять модель через админку, но не через форму/шелл

У меня возникают трудности с сохранением экземпляра модели Django в мою базу данных. Экземпляр состоит из поля FileField, которое, как я думаю, и вызывает трудности. Моя модель выглядит следующим образом:


class initial_settings(models.Model):
    name = models.CharField(max_length=30, unique=True)
    epsilon = models.FloatField(default = 0.3)
    document = models.FileField(upload_to='documents/')
    def __str__(self):
        return self.name

Когда я открываю оболочку, создаю экземпляр и сохраняю, я выполняю команду

test = initial_settings(name = 'test1234', epsilon = 3, document = 'doc.csv').save()
pd.DataFrame(csv.reader(open(test.document.path, 'r')))

Выдает ошибку No such file or directory . Но если я открываю консоль администратора и создаю экземпляр, он сохраняется правильно, и я могу загрузить его из оболочки. В консоли администратора я вижу, что экземпляр, созданный в shell, сохраняется не в правильное место ('media/documents'), а прямо в корневой каталог, но я не уверен почему. Любая помощь будет признательна!

ПОСТСКРИПТУМ: Settings.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

Я разобрался, это была довольно простая ошибка. Тип формы в моем шаблоне был неправильным. Мне нужно было

<form enctype="multipart/form-data" action="" method="post">{% csrf_token %}

вместо просто

<form action="" method="post">{% csrf_token %}
Вернуться на верх