APIs the Django Way

Jeong Ha Seung·2021년 11월 24일

list_rooms function 내에서 rooms=Room.objects.all()로 모두 가져온 후에
Httpresponse(content=rooms)로 확인하면 방이 쭈르륵 나오는데
우리는 이걸 json으로 변환해야 한다.

따라서 json을 import한 후에,

json_rooms=json.dumps(rooms)  #dumps는 객체를 json format으로 나열해준다.
response=HttpResponse(json_rooms)	

다시 보면

다음과 같은 에러가 나온다. QuerySet은 JSON으로 변환이 불가능하기 때문이다.

rooms_json=[]

빈 리스트를 만들고

for roon in rooms:
    rooms_json.append(json.dumps(room))
response=HttpResponse(content=rooms_json)

로 수정하면

에러가 또 뜬다. 타입 Room의 객체는 열거된 JSON이 아니랜다.

from django.core import serializers

위와 같이 import 후에

from django.core import serializers
from django.http import HttpResponse
from rooms.models import Room

def list_rooms(request):
data=serializers.serialize("json",Room.objects.all())
#첫 번째 인자:format , 두번째 인자:QuerySet
response=HttpResponse(content=data)
return response

profile
블로그 이전했습니다. https://morethan-haseung-log.vercel.app

0개의 댓글