web-dev-qa-db-ja.com

ビューはHttpResponseオブジェクトを返しませんでした。代わりにNoneを返しました

次の単純なビューがあります。なぜこのエラーが発生するのですか?

The view auth_lifecycle.views.user_profile didn't return an HttpResponse object. It returned None instead.

"""Renders web pages for the user-authentication-lifecycle project."""
from Django.shortcuts               import render
from Django.template                import RequestContext
from Django.contrib.auth            import authenticate, login

def user_profile(request):
    """Displays information unique to the logged-in user."""

    user = authenticate(username='superuserusername', password='sueruserpassword')
    login(request, user)

    render(request, 'auth_lifecycle/user_profile.html',
           context_instance=RequestContext(request))
25
aliteralmind

ビューはreturnrenderでなければならず、単に呼び出すだけではありません。最後の行を

return render(request, 'auth_lifecycle/user_profile.html',
           context_instance=RequestContext(request))
60
aliteralmind
if qs.count()==1:
        print('cart id exists')
        if ....

else:    
        return render(request,"carts/home.html",{})

そのようなタイプのコードは、returnステートメントがifステートメントではなく他の目的であるべきであるため、同じエラーを返します。

上記のコードは次のように変更できます

if qs.count()==1:
        print('cart id exists')
        if ....

else:   

return render(request,"carts/home.html",{})

これはそのような問題を解決するかもしれません

2

UpdateViewを使用して同じエラーが発生しました

私はこれを持っていました:

if form.is_valid() and form2.is_valid():
    form.save()
    form2.save()
    return HttpResponseRedirect(self.get_success_url())

そして、私はちょうどやって解決しました:

if form.is_valid() and form2.is_valid():
    form.save()
    form2.save()
    return HttpResponseRedirect(reverse_lazy('adopcion:solicitud_listar'))
2
Angie Alejo