У меня возникла проблема при создании веб-приложения Django. Я хочу, чтобы, если пользователь входит в свою учетную запись, его сеанс должен быть сохранен, и когда он снова посещает страницу входа в систему, он должен быть перенаправлен на свою домашнюю страницу. Вот мой код.Вопрос рендеринга Django
Views.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')
Urls.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>
home.html
{{ user }} 's profile
<a href = "{% url 'cc_logout' %}">Logout</a>
Когда я просматриваю к CC URL он должен сначала спрашивает учетные данные пользователя. После успешного входа в систему он должен перенаправить на домашний URL-адрес пользователя, который работает нормально. Но, когда пользователь снова просматривает CC url(), он должен быть перенаправлен на свою домашнюю страницу.
В процессе отладки я обнаружил, что он не может отображать форму, когда пользователь не аутентифицирован. Он не показывает встроенную форму Django, представленную в CC.html, она просто показывает кнопку входа.
Как визуализировать форму. Пожалуйста, предложите.
Благодаря
Да, вы абсолютно правы. Я определил, что проблема заключается только в выражении render, но я пробовал это раньше, к сожалению, это не происходит. Любые предложения? – PythonEnthusiast