Почему виджет Django FileInput никогда не выводит значение? Является ли это риском для безопасности?
В исходном коде (link) для Django Widgets ясно, что FileInput
не выводит значение:
# django.forms.fields
class FileInput(Input):
input_type = 'file'
needs_multipart_form = True
template_name = 'django/forms/widgets/file.html'
def format_value(self, value):
"""File input never renders a value."""
return
Это отличается от других полей, таких как CharField
, которое возвращает начальную строку:
# django.forms.fields
def format_value(self, value):
"""
Return a value as it should appear when rendered in a template.
"""
if value == '' or value is None:
return None
if self.is_localized:
return formats.localize_input(value)
return str(value)
Почему так? Это означает, что если вы зададите значение default
в FileField
, оно не будет отображено, что может сбить пользователя с толку. Является ли это проблемой безопасности?
value
все равно отображается, если пользователь ранее загрузил файл (я предполагаю, что через ModelField
, а не FormField
?), поэтому я не вижу разницы?