본문 바로가기
내일배움캠프 AI 웹 프로그래밍

내일배움캠프 39일차 TIL_모델 시리얼라이저 활용해보기

by thriveview 2023. 9. 27.

🐼 모델 시리얼라이저 활용해보기

모델 시리얼라이저를 활용해서 article 데이터를 받아보도록 하자!

#articles>serializers.py

from rest_framework import serializers
from articles.models import Article

class ArticleSerializer(serializers.ModelSerializer):
        class Meta:
             model = Article
             fields = "__all__"

 

 

 

일단 위 코드 작성하고, 이것을 articles>views.py에서 사용하는 방법은 

from articles.serializers import ArticleSerializer #먼저추가

.
.
.
이미지 아래 참고 #그리고 가져온 article 데이터를 추가 

 

이렇게한번 사이트 돌려보자

 

사이트를 새로고침하니 에러가 발생함

 

 

에러 발생이유는 무엇일까

이유는 바로! 

You passed a Serializer instance as data, but probably meant to pass serialized `.data` or `.error`. representation.


시리얼라이저를 사용했더라도 시리얼라이저가 이 실제로 소화한 결과값을 수정하기 위해 data로 추가해주자.

 

 

그럼 안전하게 작성된것을 확인할 수 있다 


또한, articles가 하나가 아니라 여러가지고 오는 경우 수정 코드. many=True 추가하기

 

 

 

제일끝에 리스트가 만들어져 있는것을 확인할 수 있다. (스크린샷- 웹사이트)
article을 여러개 추가해보자 그리고 저장하고 다시 새로고침해보자 

위와 같이 시리얼라이즈 활용하여 JSON 형태로 보여지는게 성공.
이러한 형태로 데이터를 주고받는 경우가 굉장히 많음. 날씨, 백엔드에서받아올때 제이슨 형태로 함
공공데이터 포탈 또한 그러하다

프론트에서는 이 데이터를 받아서 그 바탕으로 그려주면된다 

이렇게 시리얼라이즈를 이용하여 데이터를 조회해봤으니 시리얼라이즈 이용하여 데이터 생성도 해보자.
POST 메소드를 동일한 url로 보내서 생성해보자

위와 같이 넣고 사이트 새로고침하면 

POST방식이 추가되면서 밑에 무언가생긴걸 볼수있다 

drf가 제공해주는 편리한 브라우저블 API 

 

이 화면에서 그냥 아무값이나 입력해서 포스트해보고 VSC에 와서 터미널을 보면 추가된 부분이 있다. 밑에예시 보고 따라하기 

 

 

 

아래에 보면 생긴곳 밑줄.

 

그런데 다시 사이트 들어가서보면 ...

To be continued...