being_resilient
being_resilient

Reputation: 33

View not returning an HttpResponse object

def signup_view(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            token = jwt.encode({'user_id': form.cleaned_data.get(
                'username').id}, SECRET_KEY)
            return HttpResponse(request, {'token': token.decode(
                "utf-8")})

This logic forms a part of my back-end that has to send response to front-end (just being explicit).

But an exception is thrown:

The view core.views.signup_view didn't return an HttpResponse object. It returned None instead.

Please help me.

Upvotes: 0

Views: 54

Answers (1)

Exprator
Exprator

Reputation: 27533

def signup_view(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            token = jwt.encode({'user_id': form.cleaned_data.get(
                'username').id}, SECRET_KEY)
            return HttpResponse(request, {'token': token.decode(
                "utf-8")})
        else:
            return HttpResponse(request)
    else:
        return HttpResponse(request)

The problem is you are not sending any HttpResponse if you don't enter the first if condition. If you receive a GET request or an invalid form, you never return.

Upvotes: 1

Related Questions