在我的管理界面中,我有一個帶有ImageField的窗體。除非某些其他字段出現驗證錯誤,否則一切都很好。在這些情況下,表單會返回給用戶進行更正,但已從表單中清除已加載的圖像文件。在Django驗證錯誤後在ImageField中重新提交圖像
有關如何將已提交的圖像重新加載到表單以便保存圖像的任何想法?
謝謝!代碼
一些有趣的位:
class DealForm(forms.ModelForm):
image = forms.ImageField(required=False,widget=AdminImageWidget)
def clean():
data = self.cleaned_data
date_start = data.get('date_start')
date_end = data.get('date_end')
(... several other validations ...)
return data
。
class AdminImageWidget(forms.FileInput):
def __init__(self, attrs={}):
super(AdminImageWidget, self).__init__(attrs)
def render(self, name, value, attrs=None):
output = []
if value and hasattr(value, "url"):
output.append(('<a target="_blank" href="%s">'
'<img src="%s" /></a> '
% (value.url, value.url_200x150)))
output.append(super(AdminImageWidget, self).render(name, value, attrs))
return mark_safe(u''.join(output))
是它解決了只爲管理形式?因爲我看不到常規窗體的小部件示例。 – alexche8 2014-11-06 11:14:07
是的,這是針對管理員表單的。 – un1t 2014-11-10 08:04:55