Здравствуйте! Помогите пожалуйста разобраться.
У меня есть форма редактирования с полем
ImageField. По умолчанию Джанго рендорит следующий шаблон (см. ниже). Как правильно поменять шаблон? Я пробовал следующий код, но
template_with_initial не работает. Хотя
initial_text,
input_text и
clear_checkbox_label работают. Могу ошибаться, но мне кажется
template_with_initial работает только с FileField.
widgets.py:from django.forms.widgets import ClearableFileInput
class CustomClearableFileInput(ClearableFileInput):
initial_text = 'Текущее изображение'
input_text = 'Изменить'
clear_checkbox_label = 'Очистить'
template_with_initial = (
'<span>%(initial_text)s</span>:'
'<a href="%(initial_url)s">%(initial)s</a>'
'%(clear_template)s<br/><span>%(input_text)s</span>: %(input)s'
)
template_with_clear = '%(clear)s'
'<label for="%(clear_checkbox_id)s">%(clear_checkbox_label)s</label>'
forms.py:class ArticleForm(forms.ModelForm):
class Meta:
model = Article
exclude = ('id',)
widgets = {
'image': CustomClearableFileInput
}
То что выводит Джанго в шаблоне:
Текущее изображение:
<a href="/media/images/2017/08/23/picture.jpg">images/2017/08/23/picture.jpg</a>
Изменить:
<input name="image" id="id_image" type="file">