Django 视图ats.views.index没有';t返回HttpResponse对象。它没有返回任何结果

Django 视图ats.views.index没有';t返回HttpResponse对象。它没有返回任何结果,django,Django,视图ats.views.index未返回HttpResponse对象。它没有返回任何结果 我正在尝试实现一个身份验证系统,如果我正确输入密码,我不会遇到任何问题,但当我输入错误时,我会得到这个错误。有人知道我怎么解决这个问题吗 这是我的看法 def index(request): if request.method == 'POST': form = AuthenticationForm(data=request.POST) if form.is_vali

视图ats.views.index未返回HttpResponse对象。它没有返回任何结果

我正在尝试实现一个身份验证系统,如果我正确输入密码,我不会遇到任何问题,但当我输入错误时,我会得到这个错误。有人知道我怎么解决这个问题吗

这是我的看法

def index(request):
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            user = form.get_user()
            login(request, user)
            return render(request, "homepage.html", context_instance=RequestContext(request))

    else:
        form = AuthenticationForm()
        return render(request, "index.html", {'form': form})
这是我的html

{% block content %}
    <form class="box" method = "post">
        {% csrf_token %}
        <h1>Ats</h1>
        {{ form }}
      <input type="submit" name="" value="Login">

    </form>
{% endblock %}
{%block content%}
{%csrf_令牌%}
自动测试系统
{{form}}
{%endblock%}

请求可以是POST请求,但是
表单有效()。在这种情况下,您的视图将返回
None

您应该“取消”显示
返回渲染(…)
部分:

from django.shortcuts import redirect

def index(request):
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            user = form.get_user()
            login(request, user)
            return redirect('some-view-name')
    else:
        form = AuthenticationForm()
    return render(request, 'index.html', {'form': form})
从django.shortcuts导入重定向
def索引(请求):
如果request.method==“POST”:
表单=身份验证表单(数据=request.POST)
如果form.is_有效():
user=form.get\u user()
登录(请求、用户)
返回重定向('some-view-name')
其他:
form=AuthenticationForm()
返回呈现(请求'index.html',{'form':form})
请注意,这里您的视图不执行身份验证。您应该首先检查密码(或其他令牌)是否匹配。有关更多信息,请参阅上的文档


如果POST请求成功,您应该重定向以实现。

重新排列代码应该有效

def index(request):
    form = AuthenticationForm()
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            user = form.get_user()
            login(request, user)
            return render(request, "homepage.html", context_instance=RequestContext(request))

    return render(request, "index.html", {'form': form})

如果表单无效,则需要定义else条件

def index(request):
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            user = form.get_user()
            login(request, user)
            return render(request, "homepage.html", context_instance=RequestContext(request))
        else:
            return render(request, "index.html", {'form': form, 'errors': form.errors})

    else:
        form = AuthenticationForm()
        return render(request, "index.html", {'form': form})
def索引(请求):
如果request.method==“POST”:
表单=身份验证表单(数据=request.POST)
如果form.is_有效():
user=form.get\u user()
登录(请求、用户)
返回呈现(请求,“homepage.html”,context_实例=RequestContext(请求))
其他:
返回呈现(请求,“index.html”,{'form':form,'errors':form.errors})
其他:
form=AuthenticationForm()
返回呈现(请求,“index.html”,{'form':form})
在模板中,您可以通过访问此上下文变量
{{errors}}
来显示表单错误

{%block content%}
{%if错误%}
{{errors}}
{%endif%}
{%csrf_令牌%}
自动测试系统
{{form}}
{%endblock%}

出现此问题的原因是,如果表单无效,您尚未编写HttpResponse对象

def index(request):
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            user = form.get_user()
            login(request, user)
            return render(request, "homepage.html", context_instance=RequestContext(request))
        else:
            return render(request, "index.html", {'form': form, 'errors': form.errors})

    else:
        form = AuthenticationForm()
        return render(request, "index.html", {'form': form})
若要在视图中解决此问题,请在表单无效时写入并返回HTTP响应

def index(request):
    if request.method == 'POST':
        form = AuthenticationForm(data=request.POST)
        if form.is_valid():
            user = form.get_user()
            login(request, user)
            return render(request, "homepage.html", context_instance=RequestContext(request))
        else:
            return render(request, "index.html", {'form': form, 'errors': form.errors})

    else:
        form = AuthenticationForm()
        return render(request, "index.html", {'form': form})
在index.html中

{% block content %}
    {% if errors %}
        {{ errors }}
    {% endif %}
    <form class="box" method = "post">
        {% csrf_token %}
        <h1>Ats</h1>
        {{ form }}
      <input type="submit" name="" value="Login">

    </form>
{% endblock %}

如果您的
表单.is\u valid()
无效怎么办?