반응형
[Django] Django Rest API 특정 필드 제외하고 검색하기
Django rest api를 통해서 검색(GET)할 때, 매번 특정 필드를 제외하고 검색한 결과를 반환하려고 했다.
그동안 Rest api가 아닌 백엔드에서 Models 검색 시, defer를 이용해서 특정 필드를 제외했었다.
모델.objects.defer('필드명')
# ex)
User.objects.defer('age')
API 구축하면서 아래와 같이 그대로 views.py에 적용해 보았지만 원하는 결과를 얻지 못했었다.
from rest_framework import viewsets
from .serializers import UserSerializer
from .models import User
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.defer('age') #
serializer_class = UserSerializer
원인은 serializers.py의 fileds에 넣어준 __all__이 문제였다.
views.py에 defer와는 상관 없이 __all__을 검색 원하는 필드로 변경해 주면 된다.
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
# fields = '__all__'
fields = ['id', 'name', 'address'] # age 필드 제외
즉, view.py가 아닌 serializers.py에서 원하는 필드를 제외시키면 된다.
[참고] https://stackoverflow.com/questions/38366605/exclude-a-field-from-django-rest-framework-serializer
반응형
'Python > Django' 카테고리의 다른 글
[Django][fancytree] ajax로 서버에서 데이터 불러오기 (0) | 2019.08.06 |
---|---|
[Django][React] Django와 React 설정하기 (0) | 2019.08.01 |
[Django][RestAPI] Image Path로 서버에 이미지 업로드하기 (2) | 2019.07.24 |
[Django] static 파일 불러오기 (0) | 2019.07.01 |
[Django] Vue.js 사용하기 (1) | 2019.06.05 |