django - 即使方法成功,Django POST 请求也总是返回 400
问题描述
我正在开发一个 Django 项目,并且正在制作一个简单的 API 来创建用户。问题是,当我检查后端时,可以成功执行发布请求。但是,它总是返回 400 错误代码作为显示的最后一行。
我的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)
我的models.py代码如下:
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 语句都不起作用,因此代码会一直运行到最后一行。