【发布时间】:2020-07-22 05:01:14
【问题描述】:
在 C# 中,您可以轻松地将 [AllowAnonymous] 附加到请求,以便可以使用该特定方法。但是在 django 中,我对 Views、Serializers、...
有点困惑ViewSet 允许您查看某个 Serializer 类包含的内容,我是否正确?如果是这样,我当然希望在用户的情况下隐藏它。
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
这就是我实现它的方式,它工作得很好。因此,当我转到 http://127.0.0.1:8000/api/users/ 时,我收到一个错误,表明我没有通过身份验证。
现在的问题是注册一个新用户。
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'username', 'email', 'password']
extra_kwargs = {'password': {'write_only': True, 'required': True}}
def create(self, validated_data, AllowAny):
user = User.objects.create_user(**validated_data)
return user
当我在我的 Angular 应用程序中使用新注册的 userData 发送帖子请求时点击 http://127.0.0.1:8000/api/users/,我显然遇到了身份验证错误。
我如何解决我或任何没有足够权限的人,不允许查看用户的数据,但是每个人都可以创建(发布)新用户?
【问题讨论】:
标签: django angular django-rest-framework django-authentication