2016-01-05 100 views
1

我有一個profile_picture=ImageField字段設置爲初始值的窗體。它使用ClearableFileInput小部件。我需要自定義模板中的表單,所以我不能簡單地使用{{ form.profile_picture}}。我怎麼可以拆分域元素,並獲得一些東西,看起來像這樣:在Django模板中自定義ClearableFileInput

{{ 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)