1.annotate()와 order_by
문제점
article에 존재하지 않는 필드의 Count를 기준으로 정렬해야하는 문제 발생
시도해 본 것들
https://sdoram.tistory.com/163
해결 방법
def get(self, request):
current_order = request.query_params.get("order", None)
if current_order == "outdated":
articles = Article.objects.order_by("created_at")
elif current_order == "likes":
articles = Article.objects.annotate(likes_count=Count("like")).order_by(
"-likes_count"
)
elif current_order == "comments":
articles = Article.objects.annotate(
comments_count=Count("comment")
).order_by("-comments_count")
elif current_order is None:
articles = Article.objects.order_by("-created_at")
이것도 serailizer로 만들어서 view에 존재하는 코드를 최소화 할 수 있는지 생각해보기
알게 된 점
정렬을 위한 데이터는 serializer와 관계가 없음을 알 수 있었다.
'프로젝트 > I들 ChangeArt' 카테고리의 다른 글
머신러닝 팀 프로젝트 - KPT 회고 (0) | 2023.05.29 |
---|---|
머신러닝 프로젝트 - 테스트 코드 작성 (0) | 2023.05.26 |
머신러닝 프로젝트 - 프론트 페이지네이션 구현 (0) | 2023.05.25 |