Deeps HIT
Deeps HIT

Reputation: 73

Django rest framework. If user exist return True, False if not

Need to preform simple check: If user exist return True, False if not.I am trying to solve thise problem using custom json answers, not sure it is the right way to deal with it. Please help me .

My serializer:

User = get_user_model()

Class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = (User.USERNAME_FIELD, )

My views:

@api_view(['GET'])
def UserViewSet(self, request):
    if request.method == 'GET':
        try:
            user = User.objects.get(username=User.USERNAME_FIELD)
            if User.DoesNotExist:
                json = {}
                json['message']= 'False'
                return Response(json)
            else:
                json = {}
                json['message']= 'True'
                return Response(json)

Upvotes: 1

Views: 5719

Answers (1)

Rahul Gupta
Rahul Gupta

Reputation: 47846

Instead of using UserViewSet and UserSerializer, you can just use APIView for that.

class UserExistsView(APIView):

    def get(self, request, *args, **kwargs):
        # use this if username is in url kwargs
        username = self.kwargs.get('username') 

        # use this if username is being sent as a query parameter
        username = self.request.query_params.get('username')  

        try:
            user = User.objects.get(username=username) # retrieve the user using username
        except User.DoesNotExist:
            return Response(data={'message':False}) # return false as user does not exist
        else:
            return Response(data={'message':True}) # Otherwise, return True

Upvotes: 5

Related Questions