2 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
并非所有 if 語(yǔ)句都返回 HttpResponse。如果要保持相同的邏輯,則需要將 else 與 HttpResponse 放在一起,并且不能將最后一個(gè) return 放在 else 語(yǔ)句之外,因?yàn)槟谋韱巫兞繉o(wú)法識(shí)別。
def index(request):
if request.method == 'POST':
if 'imagefile' in request.POST:
form = forms.AvatarUpdate(request.POST, request.FILES)
if form.is_valid():
image = request.FILES['image']
request.user.avatar = image
request.user.save()
return redirect('/')
else:
return render(...)
else:
return render(...)
else:
form = forms.AvatarUpdate()
return render(request, 'dashboard/index.html', {"this_page": "home", "form": form})
或者你可以定義一個(gè)默認(rèn)的表單值:
def index(request):
form = None
if request.method == 'POST':
if 'imagefile' in request.POST:
form = forms.AvatarUpdate(request.POST, request.FILES)
if form.is_valid():
image = request.FILES['image']
request.user.avatar = image
request.user.save()
return redirect('/')
else:
form = forms.AvatarUpdate()
return render(request, 'dashboard/index.html', {"this_page": "home", "form": form})

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
好的,我已經(jīng)完成了這項(xiàng)工作,似乎輸入的變量名是request.FILESnot的一部分request.POST。所以總的來(lái)說(shuō)view.py是這樣的:
@login_required(login_url='/accounts/login/')
def index(request):
form = forms.AvatarUpdate()
if request.method == 'POST':
form = forms.AvatarUpdate(request.POST, request.FILES)
if 'imagefile' in request.FILES:
if form.is_valid():
image = request.FILES['imagefile']
request.user.avatar = image
request.user.save()
return redirect('/')
else:
return render(request, 'dashboard/index.html', {"this_page": "home", "form": form})
感謝您嘗試提供幫助
添加回答
舉報(bào)