Могу ли я выбрать файл загрузки из формы Django? Я имею в виду InMemoryUploadedFile - PullRequest
2 голосов
/ 01 июня 2009

У меня есть форма Django, где у меня есть FileField, который принимает резюме пользователя. Я собираюсь преобразовать резюме в HTML-документ ПОЗЖЕ. Поэтому я подумал о том, чтобы сразу же засечь исходный документ и сохранить в нем столбец базы данных, а затем распаковать его и преобразовать. Это возможно?

Ответы [ 2 ]

3 голосов
/ 01 июня 2009

будет гораздо лучше сохранить файл, а затем снова открыть его, если вы хотите преобразовать его. Выборка и хранение в базе данных будет довольно большим ударом по вашей производительности. Особенно, если файлы большие.

3 голосов
/ 01 июня 2009

Не думаю, что вам нужно прибегать к выбору экземпляра FileField. Все хранилища FileField - это путь на диске, на котором был сохранен файл ... в этом смысле файл уже сохранен для последующего использования, и выбор экземпляра поля на самом деле не принесет вам много пользы. На самом деле, поскольку поле на самом деле не хранит данные, травление ничего не даст :-) См. Документацию django в FileField .

.

Когда ваша модель с FileField будет сохранена, она сохранит путь к файлу до резюме. Любой последующий процесс может загрузить резюме с диска, преобразовать его в HTML, а затем либо удалить исходное резюме, либо выполнить любую другую «очистительную» обработку, какую пожелаете.

Если вам нужно сохранить фактическое содержимое файла в базе данных, вам следует вместо этого создать поле Blob для вашей модели ... BLOB-объекты зависят от БД. Этот вопрос по SO имеет простую реализацию. Тем не менее, обратите внимание, что многие люди считают, что хранение двоичных файлов в БД - это неэффективная идея, и действительно, вы должны быть осторожны при структурировании своего приложения таким образом. В этом посте google django-developers содержится хорошее обсуждение и пример кода по Django и BLOB-объектам.

...