2016-01-05 5 views
1

У меня есть форма с полем profile_picture=ImageField, установленным на начальное значение. Он использует виджет ClearableFileInput. Мне нужно настроить форму в шаблоне, поэтому я не могу просто использовать {{ form.profile_picture}}. Как я могу разделить полевые элементы и получить то, что выглядит следующим образом:Настройка ClearableFileInput в шаблоне django

{{ with picture=form.profile_picture }} 
{{ picture.label_tag }} 
<a href="{{ picture.url }}"> 
    <img src="{{ picture.url }}"> 
</a> 
{{ picture.clear-picture }} 

где {{ picture.clear-picture }} должен генерировать флажок, чтобы удалить старую картину

ответ

2

Вы можете переопределить ClearableFileInput

class CustomClearableFileInput(ClearableFileInput): 
    template_with_initial = (
     '%(initial_text)s: <a href="%(initial_url)s">%(initial)s</a> ' 
     '%(clear_template)s<br />%(input_text)s: %(input)s' 
    ) 

    template_with_clear = '%(clear)s <label for="%(clear_checkbox_id)s">%(clear_checkbox_label)s</label>' 

взгляд на render метод ,

и после переопределения,

class ExForm(forms.Form): 
     image = ImageField(widget=CustomClearableFileInput) 
Смежные вопросы