django drf에서 serializer.is_valid(): 검증 코드를 통과하여 user같은 필드 저장하는 방법을 배웠다.
오늘 겪은 문제
위 코드는 게시물을 작성하고 게시글 리스트를 볼 수 있게하는 코드이다. 다만 postman을 통해 작성을 하려하니 자꾸 serializer.is_vailid()문을 통과하질 못해서 오류가 뜬다.
게시물을 작성할때 user필드에 대한 정보가 seiralizer 모듈 필드안에 들어가 있으면 serializer.is_vailid() 검증문을 통과할 수 없다. 따라서 저 검증문을 통과해서 post기능을 실행하려면 어떻게 해야될까 고민했다.
해결방법
방법은 새로운 serializer를 만들어 필드를 지정해주는 것이다.
기존 serializer인데 여기선 필드정보를 모두 갖고 있기 때문에 검증문을 통과할 수 없다 따라서 아래 코드처럼 바꿔준다.
이렇게 필드를 지정해주면 user같은 민감한 필드정보가 지정되어있지 않기 때문에 검증문을 통과할 수 있게 되고 검증문을 통과한 뒤 save안에
user=request.user를 넣어주어 다시 user 정보를 넣어서 리스트를 확인할때 볼 수 있다.