Serializer 업데이트 해주기
이제 snippets 는 해당 snippets 를 생성한 user 와 연계되어 있습니다.
snippets/serializers.py
에 SnippetSerializer
를 업데이트 하여, 이를 반영하도록 해줍니다.
아래 코드를, snippets/serializers.py
파일에 추가 해줍니다.
1 | class SnippetSerializer(serializers.ModelSerializer): |
owner 를 Meta 클래스안에 fields 리스트에 확실하게 추가해 주는걸 잊지 않습니다.
이 필드는 꽤나 재미있는 일을 합니다. source 인자는 어떤 속성이 필드를 채우기 위해 사용되는지 제어합니다. 그리고, 직렬화된 인스턴스에 속성을 가르킬수도 있습니다.
또한, 위에 보이는데로, owner.username
같이 점을 찍은 표현 (dot-notation) 을 인자로 받아서, django 의 템플릿 언어와 같이 주어진 속성들을 파악 합니다.
우리가 추가한 필드는 타이핑이 되지 않는 ReadOnlyField 클래스로, CharField, BooleanField 등과 같은 다른 타이핑된 필드들과는 대조됩니다. 타이핑 되지 않은 ReadOnlyField 는 언제나 읽기 전용이고, 직렬화된 표현으로 사용될것 입니다.
하지만, 이것들이 역직렬화되었을때는, 모델 인스턴스들을 업데이트 할때 사용되지 않을것입니다. 우리는, CharField(read_only=True)
도 이곳에 사용할수도 있었습니다.