我在django后端有一个视图,我只想让管理员看到。
@api_view(('GET',))
def get_analytics(request):
# Number of users who dogged in once to our system today
login_count= User.objects.filter(last_login__startswith=timezone.now().date()).count()
data = {}
data['login_count'] = login_count
return JSONResponse(data)
它是基于功能的视图。如何让它仅对管理员可见?我从我的角应用程序中点击了相应的URL来获取和呈现数据。
答案 0 :(得分:2)
您可以在您的视图中添加IsAdminUser
权限类,以限制只有管理员用户访问权限。只有具有管理员权限的用户才会被授予访问权限。其他人将被拒绝访问。
@api_view(('GET',))
@permission_classes((IsAdminUser, )) # add the permission class
def get_analytics(request):
...
return JSONResponse(data)
如果权限失败,则会根据some conditions提出exceptions.PermissionDenied
或exceptions.NotAuthenticated
例外。
答案 1 :(得分:2)
您也可以使用以下装饰器
from django.contrib.admin.views.decorators import staff_member_required
@staff_member_required