-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathviews.py
More file actions
21 lines (19 loc) · 903 Bytes
/
views.py
File metadata and controls
21 lines (19 loc) · 903 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from core.const.tag import OpenAPITag
from django.db import models
from django.utils.decorators import method_decorator
from drf_spectacular.utils import extend_schema
from event.sponsor.filters import SponsorTierFilterSet
from event.sponsor.models import Sponsor, SponsorTier
from event.sponsor.serializers import SponsorTierSerializer
from rest_framework import mixins, viewsets
@method_decorator(name="list", decorator=extend_schema(tags=[OpenAPITag.EVENT_SPONSOR]))
class SponsorTierViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
queryset = SponsorTier.objects.filter_active().prefetch_related(
models.Prefetch(
lookup="sponsors",
queryset=Sponsor.objects.filter_active().select_related("logo"),
to_attr="_prefetched_active_sponsors",
)
)
serializer_class = SponsorTierSerializer
filterset_class = SponsorTierFilterSet