#django #django-models #django-forms
Вопрос:
В исходном коде (ссылка) для виджетов Django ясно, что 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
значение в a FileField
, оно не будет отображаться, что может сбить пользователя с толку. Это проблема безопасности?
По value
-прежнему отображается, если пользователь ранее загрузил файл (я предполагаю, что через ModelField
не FormField
?), Поэтому я не вижу разницы?