У меня есть следующее простое представление. Тогда почему возникает эта ошибка 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 для случая с восклицательным знаком (!).

Вернуться на верх