控制用户是否可以登录 django admin 的方法

views.py

# -*- coding: utf-8 -*-

# build-in models
from django.shortcuts import render_to_response
from django.contrib.auth.decorators import login_required

# Create your views here.

@login_required
def show_homepage(request):
    '''
    显示主页
    '''
    if request.user.is_staff:  
        # class models.User
        # is_staff: Boolean. Designates whether this user can access the admin site.
        # 这个“职员状态”可以在 django admin 用户管理中设置。
        can_manage_user = True
    else:
        can_manage_user = False
        
    values = {'can_manage_user': can_manage_user,
              }
    return render_to_response('index.html', values)


template:

<p>
            {% if can_manage_user %}
            <a href="/newadmin/auth/">用户管理</a>
            {% endif %}
</p>


之所以把权限控制放在 views.py 中判断,是因为我在 template 中使用 {{perms.foo.can_vote}}的方式判断时, {{perms}} 一直是空值状态。
按照官方文档,我没有找到这个 perms 是否需要自己定义的说明。

还有一种采用函数修饰符的方式:
from django.contrib.admin.views.decorators import staff_member_required
 @ staff_member_required
不过这种方式需要一个 views.py 函数来配合,并不适合这里的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值