django 用户认证

1、自定义用户登录login.html

2、认证用户

    
#点击login.html中submit按键触发登录动作
def login_action(request):
username = request.POST['username']
    password = request.POST['password']
    pre_url = request.POST['pre_url']
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            login(request,user)
            # Redirect to a success page.
            if pre_url:
                return redirect(pre_url)
            else:
                return redirect('/')
        else:
        # Return a 'disabled account' error message
            return redirect('/disabled_account/')
    else:
        # Return an 'invalid login' error message.
        return redirect('/invalid_login/')

3、需要将request传入login.html,以便在头部显示登录用户名称

settings.py添加如下段落:

TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth",
 "django.core.context_processors.request",
)


template中的其它页面需要用到username需要在render页面时传入request:

context_instance参数将request传入login.html

render_to_response('login.html', context_instance=RequestContext(request))


在login.html中获取username

{% if request.user.is_authenticated %}
    <li align="left"></br><a href="logoutview" data-toggle="tooltip" title="Loginoff"><i class='icon-share'></i>{{ request.user.username }}Logout</a></li>
{% else %}
    <li align="left"></br><a href="/login/" data-toggle="tooltip" title="Login"><i class='icon-share'></i>Login</a></li>
{% endif %}

4、如果想在template中使用用户权限

如:User.objects.get(username='wangsan').get_group_permissions()

需要自定义tag


permission部分详细说明见下一篇文章


参考:django中的admin模块模板render用的是TemplateResponse方法



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值