读书人

运用django的权限管理系统permission

发布时间: 2013-03-13 10:56:58 作者: rapoo

使用django的权限管理系统permission

1.为model添加权限

class Task(models.Model):    .......    class Meta:        permissions = (            ('oprater_task','can change the tasks'),        )


2.views中可以使用如下方法来操作权限

print request.user.has_perm('conf.oprater_task')  #conf为应用名,后面的为权限名.....myuser.user_permissions = [permission_list]   #myuser为通过request.user获取的user对象myuser.user_permissions.add(permission, permission, ...)myuser.user_permissions.remove(permission, permission, ...)myuser.user_permissions.clear()


3.在template中使用权限方法:

{% if perms.conf %}    <p>You have permission to do something in the foo app.</p>    {% if perms.conf.oprater_task %}        <p>You can vote!</p>    {% endif %}    {% if perms.conf.oprater_task %}        <p>You can drive!</p>    {% endif %}{% else %}    <p>You don't have permission to do anything in the foo app.</p>{% endif %}


4.permission提供的装饰器

from django.contrib.auth.decorators import login_required@login_requireddef my_view(request):    # ...def user_can_vote(user):    return user.is_authenticated() and user.has_perm("polls.can_vote")@user_passes_text(user_can_vote, login_url="/login/")def vote(request):    # Code here can assume a logged-in user with the correct permission.    ...from django.contrib.auth.decorators import permission_required@permission_required('polls.can_vote', login_url="/login/")def vote(request):


ok!

读书人网 >编程

热点推荐