Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django REST framework-serializer.object.value='x'在serializer.save()之前不会更改值_Django_Django Rest Framework - Fatal编程技术网

Django REST framework-serializer.object.value='x'在serializer.save()之前不会更改值

Django REST framework-serializer.object.value='x'在serializer.save()之前不会更改值,django,django-rest-framework,Django,Django Rest Framework,我现在有一个简单的帖子,内容如下- def post(self, request, format=None): serializer = CalendarSerializer(data=request.DATA) if serializer.is_valid(): serializer.object.evntmst_name='cal_test' serializer.save() return Response(serialize

我现在有一个简单的帖子,内容如下-

def post(self, request, format=None):
    serializer = CalendarSerializer(data=request.DATA)
    if serializer.is_valid():
        serializer.object.evntmst_name='cal_test'
        serializer.save()
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

我在post上导入了一个XML,其中evntmst_的名称是cal_daily。在执行post时,它会成功通过,但evntmst_name的值不会更改。在post之后,我在数据库中每天得到相同的cal_值,而不是它应该设置为的cal_测试。我遗漏了什么?

我想我是通过另一种方式解决了这个问题,或者我想在视图中实现的方式是不可能的。我已经创建了两个单独的序列化程序,一个用于GET,一个用于PUT/PATCH

在PUT/PATCH的序列化程序中,我定义了更改字段值的逻辑,如下所示-

class CalendarPUTSerializer(serializers.ModelSerializer):

    class Meta:
        model = Evntmst
        resource_name = 'evntmst'
        fields = ('evntmst_id', 'evntmst_name')

    def transform_evntmst_id(self, obj, value):
        if obj.evntmst_id == 1939:
            return 1937