Django为什么补丁返回正确的数据,我想保存,但它不保存在数据库中的数据?

2024-09-26 18:04:15 发布

您现在位置:Python中文网/ 问答频道 /正文

你知道为什么补丁返回正确的数据,我想保存,但它不保存在数据库中的数据?你知道吗

from .serializers import ObjectSerializer

@permission_classes([UserPermission])
class ObjectDetail(GenericAPIView):

    serializer_class = ObjectSerializer

    def patch(self, request, object_id):

        try:
            object = Object.objects.get(id=object_id)
        except Object.DoesNotExist:
            return Response(status=status.HTTP_404_NOT_FOUND)
        serializer = ObjectSerializer(object, 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)

你知道吗序列化程序.py地址:

class ObjectSerializer(serializers.ModelSerializer):

    class Meta:
        model=Object

        fields = '__all__'

你知道吗型号.py地址:

class Object(models.Model):

    field1 = models.CharField(max_length=200)
    field2 = models.ForeignKey('auth.User')
    field3 = models.FloatField()
    field4 = models.FloatField(null=True, blank=True)

    def save(self, *args, **kwargs):
        if not self.pk:
            self.field4 = self.field3
            super(Object, self).save(*args, **kwargs)

更新

我找到了我的补丁方法不起作用的原因。问题在于模型中的def save(self, *args, **kwargs):函数。当我评论的时候,一切都很好。有什么办法可以解决吗?你知道吗


Tags: selfidtruedatareturnobjectmodelsresponse

热门问题