Как отобразить значение по умолчанию для models.FileField() в шаблоне CreateView?
Как отобразить значение по умолчанию для models.FileField()
? (ref)
class MyModel(models.Model):
myfile = models.FileField(upload_to='mydocs', default='myfile.txt')
FieldField
имеет недокументированную возможность, которая позволяет установить значение по умолчанию с помощью default=
. Это ссылка на существующий файл, обычно в корне static
.
Виджет формы по умолчанию для этого поля - ClearableFieldInput
(ref), который использует django/forms/widgets/clearable_file_input.html
в качестве шаблона:
{% if widget.is_initial %}{{ widget.initial_text }}:
<a href="{{ widget.value.url }}">{{ widget.value }}</a>
{% if not widget.required %}
<input type="checkbox" name="{{ widget.checkbox_name }}" id="{{ widget.checkbox_id }}">
<label for="{{ widget.checkbox_id }}">{{ widget.clear_checkbox_label }}</label>
{% endif %}<br>
{{ widget.input_text }}:{% endif %}
<input type="{{ widget.type }}" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>
Однако, если установлено default
(initial
пустое), значение по умолчанию не отображается в шаблоне, что может запутать зрителя. Они думают, что поле пустое, а затем на create()
устанавливается значение по умолчанию.
Я предполагаю, что значение default
не передается в шаблон? Если да, то как я могу изменить FileField
, чтобы передать его?
Если нет, то как я могу сослаться на него?