[Django - RestFramework] 질문입니다!!
-
```
<코드 첨부>
from django.db import models ## 지역 테이블 (지역, 색상) class Area(models.Model): area = models.CharField(max_length=20) #지역 (ex. 춘천시) color = models.CharField(max_length=20) #색상 (ex. #fff, red) def __str__(self): return self.area ## 스토리 테이블 (사진, 제목, 작성자, 내용, 세부 지역, 색상) class Story(models.Model): image = models.ImageField(null=True) #사진 (= 사진 없음 허용) title = models.CharField(max_length=20) #글 제목 writer = models.CharField(max_length=20) #글 작성자 content = models.TextField(blank=True) #글 내용 (= 내용 없음 허용) detail_area = models.CharField(max_length=30) #세부 지역 color = models.CharField(max_length=20) #색상 def __str__(self): return '%d번 스토리' %(self.pk) ------------------------------------------------------------------------------ ### django_cbv/cbv/serializers.py from rest_framework import serializers from .models import Area, Story class AreaSerializer(serializers.ModelSerializer): class Meta: model = Area fields = ('area', 'color') class StorySerializer(serializers.ModelSerializer): class Meta: model = Story fields = ('title','writer','content','detail_area','color',) ------------------------------------------------------------------------------ ### django_cbv/cbv/views.py from rest_framework import viewsets from .serializers import AreaSerializer, StorySerializer from .models import Area, Story # Create your views here. class AreaViewSet(viewsets.ModelViewSet): queryset = Area.objects.all() serializer_class = AreaSerializer class StoryViewSet(viewsets.ModelViewSet): queryset = Story.objects.all() serializer_class = StorySerializer ------------------------------------------------------------------------------- ### django_cbv/django_cbv/urls.py from django.urls import path, include from django.contrib import admin from rest_framework import routers from cbv.views import StoryViewSet, AreaViewSet router = routers.DefaultRouter() router.register('areas', AreaViewSet) router.register('storys', StoryViewSet) urlpatterns = [ path('admin/', admin.site.urls), path('', include(router.urls)), ] -------------------------------------------------------------------------------- ### django_cbv/django_cbv/settings.py DEBUG = True ALLOWED_HOSTS = ['*'] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'cbv', ] REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES': ( 'rest_framework.renderers.JSONRenderer', ) }
구글링하면서 코드를 맞게 짠 것 같은데, 서버를 작동시켜보면 rest-api 화면이 이런 식으로 출력됩니다.
-
@허태정 https://www.django-rest-framework.org/api-guide/renderers/
이 문서 참고하시면 도움이 되실 것 같습니다!! -
Settings.py 부분의 가장 아래에 REST_FRAMEWORK = { 여기서 Json Renderer로 설정을 하셨으므로 Json 형식의 반응이 오는 것입니다.
저 부분을 지우시면 기본 값으로 Restframework에서 제공하는 이쁜 화면을 보실 수 있습니다.