次のコードを使用して、最後にアップロードした画像をプルしました
class categoryForm(forms.Form):
name = forms.CharField(widget=forms.TextInput(attrs={'class':'box'}),max_length=32,label='Category',required=True)
is_active = forms.BooleanField(required=False)
id = forms.CharField(widget=forms.HiddenInput,required=False)
photo = forms.ImageField(
required=False,
label='Upload photo',
initial=True,
help_text='max. 4 megabytes'
)
def __init__(self, data,**kwargs):
super(categoryForm, self).__init__(data, **kwargs)
if self.data['photo']!='':
self.fields['photo'].initial=self.data['photo']
更新フォームに入力しているときにデータを渡しました
p=Category.objects.get(id='%s'%(target_id))
formdata = categoryForm({'name':p.name,'is_active':p.is_active,'id':p.id,'photo':p.image()})
初期画像を完璧に表示しています
FileFieldもあるので、categoryFormが呼び出されるアクションページで追加のパラメーターを渡す必要があります。
formdata = categoryForm(request.POST,request.FILES)
この余分なパラメータは私に以下のエラーを与えています
__init__() takes exactly 2 arguments (3 given)
request.FILES init()を削除すると正常に機能しますが、画像をアップロードできません:)
案内してください