gpt4 book ai didi

django - View ats.views.index 未返回 HttpResponse 对象。它返回 None 代替

转载 作者:行者123 更新时间:2023-12-04 00:30:19 26 4
gpt4 key购买 nike

View ats.views.index 未返回 HttpResponse 对象。它返回 None 。

我正在尝试实现身份验证系统,如果我正确输入密码,我不会遇到任何问题,但是当我输入错误时,我会收到此错误。有谁知道我该如何解决这个问题?

这是我的看法

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 %}

最佳答案

请求可以是 POST 请求,但其中 form.is_valid()不成立。在这种情况下,您的 View 将返回 None .

您应该“取消缩进”return render(..)部分:

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})

请注意,此处您的 View 不执行身份验证。您应该首先检查密码(或其他一些 token )是否匹配。请参阅 authenticate(..) [Django-doc] 上的文档想要查询更多的信息。

如果 POST 请求成功,您应该进行重定向以实现 Post/Redirect/Get pattern [wiki] .

关于django - View ats.views.index 未返回 HttpResponse 对象。它返回 None 代替,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59948122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com