Skip to content

Commit d408157

Browse files
authored
Merge pull request #45 from golony6449/golony/feature/sponsor
update: available 필드 추가
2 parents 1093740 + aa26d23 commit d408157

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

sponsor/serializers.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
from rest_framework.fields import SerializerMethodField
2-
from rest_framework.serializers import ModelSerializer
2+
3+
import rest_framework.serializers as serializers
34

45
from sponsor.models import Sponsor, SponsorLevel
56

67

7-
class SponsorSerializer(ModelSerializer):
8+
class SponsorSerializer(serializers.ModelSerializer):
89
class Meta:
910
model = Sponsor
1011
fields = [
@@ -23,7 +24,7 @@ class Meta:
2324
]
2425

2526

26-
class SponsorListSerializer(ModelSerializer):
27+
class SponsorListSerializer(serializers.ModelSerializer):
2728
class Meta:
2829
model = Sponsor
2930
fields = [
@@ -35,7 +36,7 @@ class Meta:
3536
]
3637

3738

38-
class SponsorLevelSerializer(ModelSerializer):
39+
class SponsorLevelSerializer(serializers.ModelSerializer):
3940
class Meta:
4041
model = SponsorLevel
4142
fields = [
@@ -47,8 +48,9 @@ class Meta:
4748
] # TODO: Add fields to show
4849

4950

50-
class SponsorRemainingAccountSerializer(ModelSerializer):
51+
class SponsorRemainingAccountSerializer(serializers.ModelSerializer):
5152
remaining = SerializerMethodField()
53+
available = SerializerMethodField()
5254

5355
class Meta:
5456
model = SponsorLevel
@@ -58,8 +60,13 @@ class Meta:
5860
"limit",
5961
"remaining",
6062
"id",
63+
"available",
6164
]
6265

6366
@staticmethod
6467
def get_remaining(obj):
6568
return obj.current_remaining_number
69+
70+
@staticmethod
71+
def get_available(obj: SponsorLevel):
72+
return True if obj.current_remaining_number < obj.limit else False

sponsor/viewsets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,14 +75,14 @@ def list(self, request, *args, **kwargs):
7575

7676

7777
class SponsorRemainingAccountViewSet(ModelViewSet):
78-
serializer_class = SponsorLevelSerializer
78+
serializer_class = SponsorRemainingAccountSerializer
7979
http_method_names = ["get"]
8080

8181
def get_queryset(self):
8282
return SponsorLevel.objects.all()
8383

8484
def list(self, request, *args, **kwargs):
8585
queryset = SponsorLevel.objects.all().order_by("-price")
86-
serializer = SponsorRemainingAccountSerializer(queryset, many=True)
86+
serializer = self.get_serializer(queryset, many=True)
8787

8888
return Response(serializer.data)

0 commit comments

Comments
 (0)