I'm writing an api view for sign up for new users but postman is saying :
{
"detail": "Authentication credentials were not provided."
}
this is my view: class SignUpAPIView(CreateAPIView):
serializer_class = SignUpSerializer
def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
if serializer.is_valid():
user = serializer.save()
return Response({'message': 'User registered successfully'}, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
And serializer:
class SignUpSerializer(serializers.ModelSerializer):
email = serializers.EmailField(
required=True,
validators=[UniqueValidator(queryset=User.objects.all())]
)
password = serializers.CharField(write_only=True, required=True, style={'input_type': 'password'})
confirm_password = serializers.CharField(write_only=True, required=True, style={'input_type': 'password'})
class Meta:
model = User
fields = ['first_name', 'last_name', 'email', 'password', 'confirm_password']
def validate(self, data):
if data['password'] != data['confirm_password']:
raise serializers.ValidationError("Passwords do not match.")
return data
def create(self, validated_data):
validated_data.pop('confirm_password', None)
return User.objects.create_user(**validated_data)
my settings.py: REST_FRAMEWORK = {
"DEFAULT_AUTHENTICATION_CLASSES": [
"rest_framework_simplejwt.authentication.JWTAuthentication",
'rest_framework.authentication.BasicAuthentication',
"rest_framework.authentication.SessionAuthentication",
],
"DEFAULT_PERMISSION_CLASSES": [
"rest_framework.permissions.IsAuthenticated"
],