photo list 에 photo post하기
위와같은 오류가 생기며 post가 진행되지 않음
nested serializer란, 하나의 serializer 안에 다른 serializer가 중첩되어 있는 구조를 말한다. 예를 들어, 사용자(User) 모델과 그 사용자가 등록한 게시글(Post) 모델이 있을 때, PostSerializer 안에 UserSerializer를 중첩하여 사용하는 것이 이에 해당한다.
nested serializer는 기본적으로 읽기 전용(read-only)이다. 즉, 중첩된 serializer에 대한 create, update 작업이 불가능하다. 그 이유는 중첩된 serializer에서 받은 데이터가 원본 모델의 필드에 대응되지 않기 때문이다.
하지만, 만약 중첩된 serializer에 대한 create 작업이 필요하다면, 해당 필드에 read_only=True 값을 설정하면 된다. 이렇게 설정하면, 해당 필드는 읽기 전용이 된다. 그리고 이 경우, 해당 필드에 대한 create 작업은 중첩된 serializer에서 하지 않고, 원본 serializer에서 처리할 수 있게 된다.
위의 예시에서, PostSerializer에서 UserSerializer 필드를 중첩하고, user 필드에 read_only=True를 설정하면, 사용자 모델(User)을 생성하는 중첩된 serializer에서 create 작업을 처리하지 않고, PostSerializer에서 create 작업을 처리할 수 있게 된다. 이렇게 하면, 사용자를 생성하는 중첩된 serializer를 따로 작성하지 않아도 되므로 코드의 재사용성이 높아지고, 작업량도 줄일 수 있다.
read_only=True 추가해줌으로써 해결할 수 있었다.