2014-10-28 9 views
0

api의 PUT/PATCH 프로세스가 완료된 후 몇 가지 조치를 취하고 싶습니다.PUT/PATCH 액션 후 Django REST 프레임 워크

내 API는 한 모델의 일부 값을 업데이트하지만 이러한 업데이트 후에는 API를 전송 한 다른 모델 값을 업데이트하려고합니다. 예를 들어

:

class Model1(models.Model): 
    name = models.CharField(max_length=140) 
    qty = models.IntegerField(default=0) 

class Model2(models.Model): 
    val = models.CharField(max_length=15) 

나는, 패치 호출 내 API 업데이트 Model1.qty 값이 모델을 가지고, 그래서. 그런 다음 Model2.val 값을 Model1.qty 값과 실제로 동일한 API에 대한 Patch 호출 데이터로 업데이트하려고합니다.

정확한 방법은 알고 있지만 "업데이트"를 재정의해야한다고 생각합니다. "방법.

def update(self, request, *args, **kwargs): 
    ...?? 
def partial_update(self, request, *args, **kwargs): 
    ...?? 

어떤 아이디어?

참고 내 API를 만들기 위해 HyperlinkedModelSerializers, ModelViewSets 및 Routers를 사용하고 있습니다.

답변

0

보기에 대한 post_save 방법이 정확하게 존재합니다. Django REST 프레임 워크 문서 doesn't cover it well은 두 개의 인수, obj (저장된 객체) 및 created (POST/PUT으로 생성시 True, PUT-as-update/PATCH에 대해 False)로 호출되는 후크입니다. .

self.request.DATA으로 전송 된 데이터에 액세스 할 수 있으므로 필요에 따라 저장된 개체를 수정할 수 있습니다.

관련 문제