Skip to content

Commit e2b3bce

Browse files
authored
Merge pull request #104 from golony6449/devdev
카테고리 별로 조회할 수 있는 API 작성
2 parents da91f19 + 974e5a6 commit e2b3bce

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

pyconweb2022/program/admin.py

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

1010
class ProgramCategoryAdmin(ImportExportModelAdmin):
1111
resource_class = ProgramCategoryResource
12-
list_display = ("name",)
12+
list_display = (
13+
"id",
14+
"name",
15+
)
1316

1417

1518
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: 21 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,22 @@ 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).order_by(
53+
"video_open_at"
54+
)
55+
56+
return sessions

0 commit comments

Comments
 (0)