限制除超级用户之外的所有用户的Django Rest Framework

时间:2016-10-04 14:08:52

标签: django django-rest-framework

我可以限制我的Django Rest Framework只能由超级用户访问吗?

我可以在网址中添加装饰器,以便只有超级用户才能访问网址:

url(r'^api/', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),

1 个答案:

答案 0 :(得分:1)

如果您想允许任何工作人员访问API,那么很容易

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAdminUser',
    )
}

对于超级用户,没有内置的权限类,但我们可以轻松制作一个。

来自rest_framework导入权限

类SuPermission(permissions.BasePermission):

def has_permission(self, request, view):
    return request.user.is_authenticated() and request.user.is_superuser

然后

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'myapp.permissions.SuPermission',
    )
}