В C# вы можете легко прикрепить [AllowAnonymous] к запросу, чтобы можно было использовать указанный метод c. Однако в django я немного путаюсь с представлениями, сериализаторами, ...
Правильно ли я понимаю, что ViewSet позволяет вам увидеть, что содержит определенный класс Serializer? Если это так, я бы хотел, чтобы это было скрыто от пользователей.
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
Вот как я это реализовал, и он работает просто отлично. Поэтому, когда я go до 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
Когда я нажимаю http://127.0.0.1: 8000 / api / users / с запросом на публикацию в моем приложении Angular с недавно зарегистрированной userData, я, очевидно, получаю ошибку аутентификации.
Как я могу решить, что мне или кому-либо с недостаточными правами не разрешено ВИДЕТЬ данные пользователей, но, тем не менее, каждый может создать (опубликовать) нового пользователя?