def create(self, validated_data):
        user_data = validated_data['director']

        if not ValidarCPF(user_data['username']):
            raise serializers.ValidationError({'username': '******'})
        if not ValidarSenha(user_data['password']):
            raise serializers.ValidationError({
                'password':
                '******'
            })
        if not ValidarClassificacaoEscola(
                validated_data['school']['classification_school']):
            raise serializers.ValidationError(
                {'classification_school': 'Classificacao invalida.'})
        if not ValidarTipoEscola(validated_data['school']['type_school']):
            raise serializers.ValidationError(
                {'type_school': 'Tipo inválido.'})

        user = UserSerializer.create(UserSerializer(),
                                     validated_data=user_data)
        vigencia = Vigencia.objects.create(
            initial_date=validated_data['initial_date'],
            final_date=validated_data['final_date'],
            director=user)
        vigencia.save()

        escola = SchoolSerializer.create(
            SchoolSerializer(),
            validated_data=validated_data['school'],
            user=user,
            vig=vigencia)

        return user
Beispiel #2
0
    def create(self, request, *args, **kwargs):
        serializer = UserSerializer(data=request.data)
        if serializer.is_valid():
            serializer.create(serializer.validated_data)

            # Send email when user creates account
            email = request.data.get('email')
            send_mail(
                WELCOME_EMAIL_SUBJECT,
                WELCOME_EMAIL_MESSAGE,
                COMPANY_EMAIL,
                [email],
                fail_silently=False,
            )
            return Response('Successfully created an account',
                            status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)