首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django用户认证(未认证)

django用户认证(未认证)
EN

Stack Overflow用户
提问于 2017-09-10 01:09:38
回答 2查看 5.3K关注 0票数 2

我想创建一个简单的Django身份验证(注册/登录/注销),但我有问题。如果完全登录成功,则应用程序转到名为mypage的下一页,因为我在settings.py中定义了一行:LOGIN_REDIRECT_URL = '/mypage'

但在新页面中,用户不是经过身份验证的用户(我的用户只在"/login""/register"页面中进行身份验证,而在homemypage页面中则不进行身份验证)

知道我为什么错了吗?

在这里,代码:

urls.py

代码语言:javascript
复制
url(r'^$', views.home),
url(r'^mypage/$', views.mypage),
url(r'^login/$', views.login, {'template_name': 'login.html', 'authentication_form': LoginForm}),
url(r'^logout/$', views.logout, {'next_page': '/login/'}),
url(r'^register/$', views.register),
url(r'^register/success/$', views.register_success)

views.py

代码语言:javascript
复制
def home(request):
    return render_to_response('home.html')

def mypage(request):
    return render_to_response('home2.html')

settings.py

代码语言:javascript
复制
LOGIN_REDIRECT_URL = '/mypage'

html 1:

代码语言:javascript
复制
        {% if user.is_authenticated %}
         <li>
            <a href="/logout">LogOut</a>
        </li>
        {% else %}
         <li>
            <a href="/login">Login</a>
        </li>
        {% endif %}

html 2:

代码语言:javascript
复制
{% if user.is_authenticated %}
 <a href="#" class="lg">Start</a>
  {% else %}
  <p>Please Login to start</p>
  {% endif %}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-10 09:11:10

当您使用render_to_response时,您需要添加用户到上下文手册,或者您可以在请求中使用render,在这种情况下,user将被添加到模板上下文中。

代码语言:javascript
复制
from django.shortcuts import render, render_to_response

def home(request):
    return render(request, 'home.html')

def mypage(request):
    return render_to_response('home2.html', {'user': request.user})
票数 1
EN

Stack Overflow用户

发布于 2017-09-10 01:55:40

urls.py

代码语言:javascript
复制
from django.contrib.auth import views as auth_views

urlpatterns = [
    url(r'^login/$', auth_views.login, {'template_name': 'login.html'}, name='login'),
    url(r'^logout/$', auth_views.logout, name='logout'),
    . . .. 
]

login.html

代码语言:javascript
复制
{% extends 'base.html' %}

{% block title %}Login{% endblock %}

{% block content %}
   <h2>Login</h2>
   <form method="post">
   {% csrf_token %}
   {{ form.as_p }}
   <button type="submit">Login</button>
 </form>
{% endblock %}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46136427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档