Обычно ImageField
s использует виджет ClearableFileInput
.Этот виджет по умолчанию использует имя шаблона django/forms/widgets/clearable_file_input.html
.
. Вы можете создать собственный подкласс виджета ClearableFileInput
, который использует другой шаблон.
from django.forms.widgets import ClearableFileInput
class MyImageWidget(ClearableFileInput):
template_name = "myapp/my_template.html"
содержимое этого шаблона может быть просто частью <input>
шаблона по умолчанию со снятой лишней меткой и флажком.Вы можете настроить его так, как вам нужно.Это может выглядеть как
<!-- myapp/my_template.html -->
<input type="{{ widget.type }}" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>
Затем в вашей форме укажите виджет для ImageField
class MyForm(forms.Form):
# ...
my_image_field = forms.ImageField(widget=MyImageWidget)
# ...
Django также предоставляет виджет FileInput
, который использует простой шаблон .Если это соответствует вашим потребностям, просто сделайте
class MyForm(forms.Form):
# ...
my_image_field = forms.ImageField(widget=forms.widgets.FileInput)
В качестве альтернативы, вы можете просто переопределить шаблон по умолчанию, создав файл django/forms/widgets/clearable_file_input.html
в каталоге template
вашего проекта.Однако это применило бы это изменение к визуализации всех полей с использованием виджета ClearableFileInput
, так что это не такой гибкий подход.