我已将此装饰器添加到我的一个视图中
@permission_required('codename')
Run Code Online (Sandbox Code Playgroud)
当用户访问该页面并且没有所需的权限时,他会被重定向到登录页面,但它并没有真正告诉他为什么他被重定向到那里.更糟糕的是,如果他登录,但仍然没有权限,他将完全无能为力,为什么他无法访问该页面!
有没有办法我可以利用消息框架并同时发布错误?
不确定您使用的是哪个版本的 Django,但在 Django 1.4 及更高版本中,您可以使用:
from django.contrib.auth.decorators import permission_required
@permission_required('app.permission',raise_exception=True)
def myView(request):
#your view code
Run Code Online (Sandbox Code Playgroud)
这将引发 403 异常,如果您在模板文件夹的底部有一个 403.html 页面,它将对此进行处理。
如果您使用基于类的视图:
from django.views.generic.base import View
from django.contrib.auth.decorators import permission_required
from django.utils.decorators import method_decorator
class MyView(View):
@method_decorator(permission_required('app.permission',raise_exception=True)
def get(self, request):
#your GET view
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
3977 次 |
| 最近记录: |