ValueError:视图accounts.views.register未返回HttpResponse对象。它返回了None

时间:2017-12-20 09:51:24

标签: python django

我收到此错误,但我无法解决此问题。 以下是文件:views.py

from django.shortcuts import render,HttpResponse
from django.contrib.auth.forms import UserCreationForm
# Create your views here.
def home(request):
    numbers=[1,2,3,4,5]
    name='satya'
    args={'MYname':name,'numbers':numbers}
    return render(request,'accounts/home.html',args)

def register(request):
    if request.method=='POST':
        form=UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/accounts')

    else:
        form=UserCreationForm()
        args={'form':form}
        return render(request,'accounts/reg_form.html',args)    

这是reg_form.html

{% extends 'base.html' %}

{% block body %}
<div class="container">
    <h1> Register </h1>
    <form method="post">
    {% csrf_token %}
    {{form.as_p}}
    <<button type=" submit " class="submit" >Submit</button>


</form>
</div>
{% endblock %}

我已经正确地导入了这些东西但没有得到错误。

1 个答案:

答案 0 :(得分:2)

问题是当表单无效时,您没有返回POST请求的响应。您可以通过取消前两行来解决此问题,以便它们针对GET和POST请求运行。

def register(request):
    if request.method=='POST':
        form=UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/accounts')

    else:
        form=UserCreationForm()
    args={'form':form}
    return render(request,'accounts/reg_form.html',args)