我有以下 ModelViewSet
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all()
serializer_class = UserSerializer
authentication_classes = (TokenAuthentication,)
permission_classes = (permissions.IsAuthenticated, MyUserPermissions)
我希望
create method (POST on /users/)
不要求任何身份验证。在这种情况下如何覆盖 authentication_classes ?我说的是 ModelViewSet
不是通用的 API View 。 最佳答案
其实这不是你想要的。您希望用户的 POST
不需要任何权限,这将导致经过身份验证或未经身份验证的请求都会成功。
我建议覆盖您的权限类,以便它们始终允许 POST
请求。关注 custom permissions documentation 以获取更多信息。
基本上你会有类似的东西:
class IsAuthenticatedOrCreate(permissions.IsAuthenticated):
def has_permission(self, request, view):
if request.method == 'POST':
return True
return super(IsAuthenticatedOrCreate, self).has_permission(request, view)
并且您的其他权限类也可能类似。
关于django - 在 Django REST framework 中对 ModelViewSet 中的不同操作使用不同的身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22196697/