당신은 멋쟁이, 우리는 장고쟁이~

0%

DRF Tutorial 21편 - Snippets 와 User 를 연계하기

Associating Snippets with Users


지금 우리가 코드 스니펫을 생성했다면, 스니펫을 생성한 사용자와 스니펫 인스턴스가 연계되는길은 없습니다. 사용자는 직렬화된 형태를 전달받지 않습니다. 하지만, 들어오는 요청의 속성으로 있습니다.


이것을 해결하기 위해, snippet 뷰에 .perform_create() 메서드를 오버라이딩 해줍니다. 이는, 어떻게 인스턴스 저장이 관리되고, 들어오는 요청 혹은 요청된 URL 안에 숨겨져 있는 정보를 다룰수 있게 해줍니다.


SnippetList 뷰 클래스에, 아래 메서드를 추가해 줍니다.


1
2
3
4
5
6
class SnippetList(generics.ListCreateAPIView):
queryset = Snippet.objects.all()
serializer_class = SnippetSerializer

def perform_create(self, serializer):
serializer.save(owner=self.request.user)

우리의 serializer 의 create() 메서드는, 이제 추가적인 owner필드를 요청으로부터 유효한 데이터와 함께 전달 받습니다.