Я не могу установить url FileField
, который я хочу.атрибут upload_to, кажется, не используется при сохранении FileField
Моя модель определяется
class MyModel(models.Model):
pdf_file = models.FileField(upload_to="reports", null=True, blank=True)
# more stuff
и создать экземпляр с помощью:
myModel = MyModel()
myModel.pdf_file = "some_file.pdf"
myModel.save()
myModel.pdf_file.url
возвращается <MEDIA_URL>/some_file.pdf
, в то время как я хотел бы ожидать, что это будет <MEDIA_URL>/reports/some_file.pdf
, из-за атрибута upload_to
.
Что мне не хватает?
EDIT
я впервые попробовал установить File
объект вместо string
но он дублирует мой файл с _<duplication_num>
приложенными к ней, поэтому я сначала создать свой файл в папке TMP и удалить его:
myModel.pdf_file = File(open(TMP_FILE_PATH + filename))
myModel.save()
# now that the file is saved to its final location, delete tmp
filepath = os.path.abspath(TMP_FILE_PATH + filename)
os.remove(filepath)