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)
如果您希望一次更新一个字段,那么我建议您为每个字段制作不同的视图。
添加回答
举报