2 回答

TA貢獻1824條經驗 獲得超5個贊
這里的問題在于views.py
。
1.ModelForm構造函數中的前兩個位置參數是數據和文件。您應該轉到data
第一個和files
第二個。
2.如果此處沒有文件字段,則不進行任何更改
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貢獻1802條經驗 獲得超5個贊
您不會收到任何錯誤,只是因為代碼完全按照您的指示執行。代碼永遠不會進入 elif 語句,這是因為“if 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)
如果您希望一次更新一個字段,那么我建議您為每個字段制作不同的視圖。
添加回答
舉報