У меня есть следующее простое представление. Тогда почему возникает эта ошибка ValueError
Это мой views.py
def user_profile(request):
if request.user.is_authenticated:
if request.method == "POST":
fm = EditUserProfileForm(request.POST, instance=request.user)
if fm.is_valid():
messages.success(request,'Profile updated')
fm.save()
else:
if request.user.is_superuser == True:
fm = EditAdminProfileForm(instance = request.user)
else:
fm = EditUserProfileForm(instance=request.user)
return render(request,'enroll/profile.html',{'name':request.user,'form':fm})
else:
return HttpResponseRedirect('/login/')``
Эта ошибка приближается-
Тип исключения:- ValueError
Значение исключения:- Представление enroll.views.user_profile не вернуло объект HttpResponse. Вместо этого оно вернуло None.
Вы не описали случай, когда request.user.is_authenticated
является True
, но request.method
является не POST запросом:
def user_profile(request):
if request.user.is_authenticated:
if request.method == 'POST':
fm = EditUserProfileForm(request.POST, instance=request.user)
if fm.is_valid():
messages.success(request, ‘Profile updated’)
fm.save()
else:
if request.user.is_superuser == True:
fm = EditAdminProfileForm(instance = request.user)
else:
fm = EditUserProfileForm(instance=request.user)
return render(request, 'enroll/profile.html' ,{'name':request.user, 'form' :fm})
else:
# ... case not covered yet (!)
pass
else:
return HttpResponseRedirect('/login/')
Таким образом, вы должны реализовать логику, которая будет возвращать HttpResponse
для случая с восклицательным знаком (!)
.