我有一个学生模型。我想更新一些特定的字段。但是,当我去更新一两个字段但另一个字段值保持原样时,哪些字段没有更改这些字段会显示此错误**“此字段是必需的。”。 **
这是我的模型。
class Student(models.Model):
teacher=models.ForeignKey(Teacher, on_delete=models.CASCADE)
name=models.CharField(max_length=20)
level=models.CharField(max_length=20)
这是我的观点
class StudentUpdateDelete(APIView):
def patch(self, request, id):
student=Student.objects.filter(pk=id).first()
serializer=StudentSerializer(student, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
上面的模型有 3 个字段,但我只想使用 patch 方法更改 name 字段。
如果您想使用
PATCH
方法更新特定字段,请在初始化 partial=True
时设置 serializer
。
所以,按照你的观点,它是:
class StudentUpdateDelete(APIView):
def patch(self, request, id):
student=Student.objects.filter(pk=id).first()
serializer=StudentSerializer(student, data=request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)