2014-09-15 2 views
0

값을 변경하지 않습니다하기 전에 = 'x'를 지금 다음을 수행 -장고 REST 프레임 워크 - serializer.object.value serializer.save은() 나는 간단한 POST가

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) 

은 내가 XML이 그 나는 evntmst_name이 "cal_daily"인 게시물을 가져오고 있습니다. 게시물을 수행하면 성공적으로 통과하지만 evntmst_name 값은 변경되지 않습니다. 게시물을 설정 한 후에 "cal_test"대신 데이터베이스에서 "cal_daily"와 동일한 값을 얻습니다. 내가 뭘 놓치고 있니?

답변

0

나는 이것을 다른 방법으로, 또는 내가보기를 바라는 방식으로 생각한 것 같습니다 (불가능). 필자는 GET을 위해 1 개의 PUT/PATCH를 위해 2 개의 분리 된 serializer를 만들었다.

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 
-

PUT/PATCH의 시리얼에서

그래서 같은 필드 값을 변경하는 로직을 정의했다

관련 문제