Django - начальное значение forms.FileField () - PullRequest
11 голосов
/ 05 декабря 2010

Возможно ли дать начальное значение для forms.FileField () динамически?

Ответы [ 2 ]

16 голосов
/ 29 августа 2013

Я не уверен, если это то, что вы хотите, но ...

Очевидно, что вы не можете установить начальные данные для ввода файла (это будет означать, что вы отправляете файл пользователю). У Django есть виджет ClearableFileInput, но этот виджет претендует на отображение исходных данных: он отображает ссылку на загруженный файл , если ссылка присутствует .

Это реализуется посредством проверки, имеет ли начальный объект (объект, переданный конструктору формы в словаре files) атрибут url. После установки этого атрибута виджет будет отображать строку «В настоящее время ссылка ».

Кстати, если вы получили объект файла, используя хранилище файлов, то вы можете получить ссылку на этот файл, используя метод хранения url().

8 голосов
/ 05 декабря 2010

По стандартам безопасности, <input type="file"> не может иметь значение по умолчанию и им нельзя манипулировать.

Причина в том, что хакер может установить значение по умолчанию для ввода файла в любой важный файл в вашей системе (содержащий пароли, сертификаты и т. Д.), Скрыть это поле с помощью CSS, и вы никогда не узнаете, что загрузили что-то для хоста хакеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...