2009-06-01 2 views
2

У меня есть форма django, где у меня есть FileField, который принимает резюме пользователя. Я собираюсь преобразовать резюме в html-документ LATER. Поэтому я подумал о том, чтобы сразу же собрать исходный документ и сохранить в нем db-colum, а затем распечатать его и преобразовать. Это возможно?Можно ли сортировать файл для загрузки из формы django? Я имею в виду InMemoryUploadedFile

+0

Почему вы хотите рассолить его в первую очередь? –

+0

Я не могу сохранить его в файловой системе напрямую. Если преобразование будет успешным, тогда я сохраню оба файла. Оригинал и конвертированный. Вот почему мне нужно место в промежутке, где я буду хранить точный файл. Поэтому я подумал о том, чтобы его мариновать. –

ответ

3

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

+0

Я думаю, что я медленно прихожу к такому же выводу –

3

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

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

Если вам нужно сохранить фактическое содержимое файла в базе данных, вы будете искать создание поля Blob для своей модели, а ... blobs являются специфичными для БД. Это question on SO имеет реализацию bare-bones. Заметьте, однако, что многие люди считают, что сохранение двоичного кода в БД является плохой идеей, и действительно, вы должны быть осторожны в структурировании своего приложения таким образом. У этого google django-developers forum post есть хороший пример обсуждения и пример кода на Django и blobs.

+0

Я вижу вашу точку зрения: FileField просто сохраняет путь к локальному файлу. Но в вашем втором абзаце вы сказали: «... он сохранит путь к файлу в резюме». Что ты имеешь в виду? И что касается блоб, конечно, я не хочу этого делать. Я просто хочу сохранить содержимое html каждого резюме только в db. –

Смежные вопросы