2 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊
這里的問題在于views.py
。
1.ModelForm構(gòu)造函數(shù)中的前兩個(gè)位置參數(shù)是數(shù)據(jù)和文件。您應(yīng)該轉(zhuǎn)到data
第一個(gè)和files
第二個(gè)。
2.如果此處沒有文件字段,則不進(jìn)行任何更改
bioForm?=?EditBioForm(data=request.POST,?instance=request.user.memer)
3.但是這里做出改變
coverImageForm?=?UpdateCoverImageForm(data=request.FILES,?instance=request.user.memer)
到
coverImageForm?=?UpdateCoverImageForm(request.POST,?request.FILES,?instance=request.user.memer)
并且 Boom 您的文件將得到更新。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
您不會收到任何錯(cuò)誤,只是因?yàn)榇a完全按照您的指示執(zhí)行。代碼永遠(yuǎn)不會進(jìn)入 elif 語句,這是因?yàn)椤癷f bioForm.is_valid():”語句將始終返回 True。我建議你做這樣的事情
if request.method == "POST":
bioForm = EditBioForm(data=request.POST, instance=request.user.memer)
coverImageForm = UpdateCoverImageForm(data=request.FILES, instance=request.user.memer)
if bioForm.is_valid() and coverImageForm.is_valid():
memer_ = bioForm.save(commit=False)
memer_ = coverImageForm.save(commit=False)
memer_.save()
memer_.save()
messages.success(request, "Profile successfully updated your profile")
return redirect('/profile/'+user_[0].username)
else:
messages.error(request, "Something wrong happend")
return redirect('/profile/'+user_[0].username)
return render(request, 'profile.html', context)
如果您希望一次更新一個(gè)字段,那么我建議您為每個(gè)字段制作不同的視圖。
添加回答
舉報(bào)