使用最新的Django/Django Rest框架。
我不知道如何允许一个端点具有以下规则:
POST -对任何人开放(AllowAny权限)GET -已验证。
没有办法根据方法来设置条件权限,所以只有一种方法可以在像这样的每个视图上更改权限:
@api_view(['POST'])
@permission_classes([AllowAny])
def users_view(request):
return Response("Okay!")
当然没有办法做到这样的事情:
# I have authentication turned on by default in my settings.py file
@api_view(['GET'])
def users_view(request):
return Response("Okay - you're authenticated")
@api_view(['POST'])
@permission_classes([AllowAny])
def users_view(request):
return Response("Okay! this is a public endpoint")
我该怎么做?
2条答案
按热度按时间rdlzhqv91#
所以我最终做了这样的事情:
我简单地补充了一下:
现在我的非凭证请求在GET上失败,但在POST上成功。
nvbavucw2#
您的解决方案是可以的,但在has_permission方法中有一个小的调整。
我把它改成了这个