相关疑难解决方法(0)

Django 休息模型权限

我正在使用 Django 2.1 和 djangorestframework 3.9.2。我希望能够通过 Django 管理界面控制对 Django 模型对象的 REST 操作的访问,最好使用用户权限。例如,只有对模型对象 Foo 具有读取权限的用户才能在我的 REST API 中看到 Foo。

我阅读了文档,似乎我可以使用DjangoModelPermissionsDjangoObjectPermissions

但是,当我清除数据库中的所有用户权限,并将 DEFAULT_PERMISSIONS_CLASS 设置为 DjangoModelPermissions 或 DjangoObjectPermissions 时,我仍然能够在 REST API 中看到内容。这意味着缺乏权限并不会阻止我如我所愿地看到对象。

示例设置:

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.DjangoModelPermissions',
    ),
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.TokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
    ),
}
Run Code Online (Sandbox Code Playgroud)

一个示例对象视图:

from rest_framework import routers, serializers, viewsets
from .models import Example

class ExampleSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Example
        fields = '__all__'

class ExampleViewSet(viewsets.ModelViewSet):
    queryset = Example.objects.all()
    serializer_class = ExampleSerializer

router = …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

4
推荐指数
1
解决办法
1848
查看次数

标签 统计

django ×1

django-rest-framework ×1