我希望只有经过身份验证的用户才能为特定视图添加,创建,删除...(并非所有视图)。
这是我的settings.py
[settings.py]
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticatedOrReadOnly',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
)
}
执行此操作后,意外地,每个视图都应用了IsAuthenticatedOrReadOnly权限。
所以我添加了这一行,
'rest_framework.permissions.AllowAny',
并在views.py中,
查看不需要权限的地方,添加此行。
permission_classes = (AllowAny,)
完美无缺。但我想知道这是正确的方法吗?
我只是将'rest_framework.authentication.TokenAuthentication',
插入settings.py
但是为什么这个权限适用于每个视图?
答案 0 :(得分:2)
是的,这是正确的方法,您为每个视图设置了默认权限和视图特定权限。
根据DRF文档,如果您未在设置中设置默认权限,则默认为AllowAny
。
Django Rest Framework permissions包含您问题的所有答案