Skip to content

Commit eb85b5c

Browse files
committed
Feature: 특정 카테고리에 속한 세션을 조회하는 API 추가
1 parent 55b5ae3 commit eb85b5c

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

pyconweb2022/program/admin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
class ProgramCategoryAdmin(ImportExportModelAdmin):
1111
resource_class = ProgramCategoryResource
12-
list_display = ("name",)
12+
list_display = ("id", "name",)
1313

1414

1515
admin.site.register(ProgramCategory, ProgramCategoryAdmin)

pyconweb2022/program/routers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
ProposalDay1ViewSet,
66
ProposalDay2ViewSet,
77
ProposalDetailViewSet,
8+
CategorySessionViewSet,
89
)
910

1011

@@ -13,6 +14,7 @@ def get_router():
1314
router.register("list/day1", ProposalDay1ViewSet, basename="program-day1")
1415
router.register("list/day2", ProposalDay2ViewSet, basename="program-day2")
1516
router.register("list", ProposalViewSet, basename="program")
16-
router.register("edit", ProposalDetailViewSet, basename="program-edit")
17+
# router.register("edit", ProposalDetailViewSet, basename="program-edit")
18+
router.register("category", CategorySessionViewSet, basename="session-in-category")
1719

1820
return router

pyconweb2022/program/viewsets.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
from rest_framework.viewsets import ReadOnlyModelViewSet, ModelViewSet
1+
from rest_framework.viewsets import ReadOnlyModelViewSet, ViewSet
22
from rest_framework.permissions import IsAuthenticated, AllowAny
33
from rest_framework.response import Response
44

5-
from program.models import Proposal
5+
from program.models import Proposal, ProgramCategory
66
from program.serializers import ProposalSerializer, ProposalDetailSerializer
77
from pyconweb2022 import config
88

@@ -35,3 +35,20 @@ def retrieve(self, request, *args, **kwargs):
3535

3636
serializer = self.get_serializer(queryset, many=False)
3737
return Response(serializer.data)
38+
39+
40+
class CategorySessionViewSet(ProposalViewSet):
41+
queryset = Proposal.objects.none()
42+
43+
def retrieve(self, request, *args, **kwargs):
44+
queryset = self.get_queryset()
45+
serializer = self.get_serializer(queryset, many=True)
46+
47+
return Response(serializer.data)
48+
49+
def get_queryset(self):
50+
pk = self.kwargs.get("pk")
51+
target_category = ProgramCategory.objects.get(id=pk)
52+
sessions = Proposal.objects.filter(category=target_category)
53+
54+
return sessions

0 commit comments

Comments
 (0)