我在构建 Django Web 应用程序时遇到问题。我希望如果用户登录他的帐户,他的会话应该被存储,当他再次访问登录页面时,他应该被重定向到他的主页。这是我的代码。
视图.py
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.contrib.auth.decorators import login_required
from django.template import RequestContext
def index(request):
return HttpResponse("Index Page")
@login_required
def home(request):
ctx = {}
return render_to_response('auth/home.html',ctx, context_instance = RequestContext(request))
def login_page(request):
if request.user.is_authenticated():
return redirect('cc_home')
else:
return render_to_response(request,'auth/cc.html')
网址.py
from django.conf.urls.defaults import *
from django.contrib.auth.views import login, logout
urlpatterns = patterns('',
url(r'cc/', 'apps.auth.views.login_page', name = 'cc_login'),
url(r'logout/', logout, name = 'cc_logout'),
url(r'home/','apps.auth.views.home', name = 'cc_home'),
)
这是我的模板 cc.html
<form action ="." method = POST>
{% csrf_token %}
{{ form.as_p }}
<input type = "submit" value = "login">
</form>
</body>
主页.html
{{ user }} 's profile
<a href = "{% url 'cc_logout' %}">Logout</a>
当我浏览到 CC url 时,它应该首先询问用户的凭据。成功登录后,它应该重定向到用户的主页 url,运行正常。但是,当用户再次浏览到 CC url() 时,他应该被重定向到他的主页。
在调试时,我发现当用户未通过身份验证时,它无法呈现表单。它不显示 CC.html 中提供的 Django 内置表单,它只显示登录按钮。
如何呈现表单。请建议。
谢谢