학습한 내용
FilterSets NumberFilter
- https://django-filter.readthedocs.io/en/stable/guide/rest_framework.html#adding-a-filterset-with-filterset-class
- NumberFilter: 숫자 값 기준으로 필터
- gte: 이상(greater than or equal)
- lte:이하(less than or equal)
- gt: 초과(greater than)
- lt: 미만(less than)
from django_filters import rest_framework as filters
class MovieFilter(filters.FilterSet):
avg_rating_filter = filters.NumberFilter(field_name='avg_rating', lookup_expr='gte', label="avg_rating (greater than or equal)")
Views & Serializers - Foreign Key
- https://docs.djangoproject.com/en/4.0/ref/models/querysets/#prefetch-related
- https://docs.djangoproject.com/en/4.0/ref/models/querysets/#prefetch-objects
- Prefetch: Foreign key 함께 보여주고 싶을 때 사용
from django.db.models import Prefetch
class MovieDetailUpdateDeleteView(generics.RetrieveUpdateDestroyAPIView):
queryset = Movie.objects.all().prefetch_related(
Prefetch("review_set", queryset = Review.objects.order_by('-created'))
)
Paginations - 모든 뷰에서 사용
- https://www.django-rest-framework.org/api-guide/pagination/
- settings.py에서 REST_FRAMEWORK의 DEFAULT_PAGINATION_CLASS 설정
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS' : 'api.v1.common.paginations.DefaultPagination',
}
'인코스런 2기' 카테고리의 다른 글
커머스 프로젝트 4주차 WIL (0) | 2022.07.10 |
---|---|
커머스 프로젝트 3주차 WIL (0) | 2022.07.03 |
Day3 - 장고 온보딩 프로젝트 3 (0) | 2022.06.09 |
Day2 - 장고 온보딩 프로젝트 2 (0) | 2022.06.09 |
Day 1 - OT & 장고 온보딩 프로젝트 1 (0) | 2022.06.07 |