我得到了的错误视图registration.views.login没有返回HttpResponse对象.
我正在制作一个登录应用程序,我希望当我点击登录按钮时,主页会显示给我。
当我按照给定的方式运行view.py时,我将得到页面未找到的错误
from django.template import loader
from django.shortcuts import render
from registration.models import Registration
from django.http import HttpResponse
from django.template import RequestContext
def login(request):
t = loader.get_template('registration/login.html')
return render(request, 'registration/login.html')urls.py文件如下所示:
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^polls/$', 'polls.views.index'),
url(r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'),
url(r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'),
url(r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'),
url(r'^admin/', include(admin.site.urls)),
url(r'^registration/$', 'registration.views.login'),当我试图以以下方式运行view.py时:
from django.template import loader
from django.shortcuts import render
from registration.models import Registration
from django.http import HttpResponse
from django.template import RequestContext
def login(request):
t = loader.get_template('registration/login.html')
if request.method == "POST":
username = request.POST['user_name']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
# success
return render_to_response(request,'registration/login.html')然后我得到了错误视图registration.views.login没有返回HttpResponse对象。
发布于 2012-08-29 05:11:27
您不需要在每个方法中加载模板;django将为您处理这个问题。Django要求从urls.py调用所有方法,返回一个HttpResponse对象。
您的方法有很多条件,无法到达返回语句。例如,如果用户没有活动怎么办?如果请求不是POST怎么办?
尝试此版本,如果任何条件失败,该版本将用户重定向回注册页面:
def login(request):
# t = loader.get_template('registration/login.html') - not needed
if request.method == "POST":
username = request.POST.get('user_name')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
# success
return render(request,'registration/login.html')
else:
# user was not active
return redirect('registration/')
else:
# not a valid user
return redirect('registration/')
else:
# URL was accessed directly
return redirect('registration/')发布于 2012-08-29 04:52:15
样品量
view.py
def loginto(request):
if request.method == "POST":
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
return render_to_response('index1.html')
else:
return render_to_response('error1.html')
else:
return render_to_response('error2.html')
else:
return render_to_response('error2.html')url.py
url(r'^login', 'mytests.views.loginto', name='loginto'),login.html
<form method="POST" action="{% url loginto %}">
Username: <input type="text" name="username" size="15" /><br />
Password: <input type="password" name="password" size="15" /><br />
<div align="center">
<p><input type="submit" value="Login" /></p>
</div>
</form>https://stackoverflow.com/questions/12171014
复制相似问题