Django POST请求始终返回400,即使方法成功

Django POST请求始终返回400,即使方法成功,django,django-rest-framework,django-views,Django,Django Rest Framework,Django Views,我正在从事一个Django项目,我正在为创建用户制作一个简单的API。问题是,当我检查后端时,post请求可以成功执行。但是,它总是返回400错误代码,如最后一行所示 My views.py代码如下所示: class createUserView(APIView): serializer_class = CreateUserSerializer def post(self, request, format=None): serializer = self.seri

我正在从事一个Django项目,我正在为创建用户制作一个简单的API。问题是,当我检查后端时,post请求可以成功执行。但是,它总是返回400错误代码,如最后一行所示

My views.py代码如下所示:

class createUserView(APIView):
    serializer_class = CreateUserSerializer
    def post(self, request, format=None):
        serializer = self.serializer_class(data = request.data)
        if serializer.is_valid():
            name = serializer.data.get('name')
            age = serializer.data.get('age')
            queryset = user.objects.filter(name=name)
            if queryset.exists():
                print("already exists")
                new_user = user(name=name, age=age)
                # new_user.save()
                return Response(userSerializer(new_user).data, status=status.HTTP_200)
            else:
                new_user = user(name = name,age=age)
                new_user.save()
                return Response(userSerializer(new_user).data, status=status.HTTP_201_CREATED)

        return Response({'Bad Request': 'Invalid data...'}, status=status.HTTP_400_BAD_REQUEST)

from django.db import models

# Create your models here.
class user(models.Model):
    name = models.CharField(max_length=20, unique=True,null=False, default=None)
    age = models.IntegerField(null=False, default=1)
    created_at = models.DateTimeField(auto_now_add=True)
my models.py代码如下所示:

class createUserView(APIView):
    serializer_class = CreateUserSerializer
    def post(self, request, format=None):
        serializer = self.serializer_class(data = request.data)
        if serializer.is_valid():
            name = serializer.data.get('name')
            age = serializer.data.get('age')
            queryset = user.objects.filter(name=name)
            if queryset.exists():
                print("already exists")
                new_user = user(name=name, age=age)
                # new_user.save()
                return Response(userSerializer(new_user).data, status=status.HTTP_200)
            else:
                new_user = user(name = name,age=age)
                new_user.save()
                return Response(userSerializer(new_user).data, status=status.HTTP_201_CREATED)

        return Response({'Bad Request': 'Invalid data...'}, status=status.HTTP_400_BAD_REQUEST)

from django.db import models

# Create your models here.
class user(models.Model):
    name = models.CharField(max_length=20, unique=True,null=False, default=None)
    age = models.IntegerField(null=False, default=1)
    created_at = models.DateTimeField(auto_now_add=True)

我认为问题在于views.py。每当代码进入user.save()块时,return语句都不起作用,因此代码将一直运行到最后一行。

可能序列化程序永远无效?(在开始后)您确定要在视图中输入第一个if条件吗?是的,它肯定要输入第一个if条件。当我在该页面上发布时,我可以从后端看到数据已成功保存。哼。400响应包含什么内容?”无效数据…'?是,如最后一行所示;我只是为了调试而留下它们