Почему виджет ввода файлов Django никогда не отображает значение? Является ли это угрозой безопасности?

#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 ?), Поэтому я не вижу разницы?