使用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):