verbose award_type for API
This commit is contained in:
parent
3ebd859686
commit
dd1b241c41
|
|
@ -175,6 +175,12 @@ class SiteFeature(ProjectBaseMixin):
|
|||
unique_together = ('site_settings', 'feature')
|
||||
|
||||
|
||||
class AwardQuerySet(models.QuerySet):
|
||||
|
||||
def with_base_related(self):
|
||||
return self.prefetch_related('award_type')
|
||||
|
||||
|
||||
class Award(TranslatedFieldsMixin, URLImageMixin, models.Model):
|
||||
"""Award model."""
|
||||
WAITING = 0
|
||||
|
|
@ -200,6 +206,8 @@ class Award(TranslatedFieldsMixin, URLImageMixin, models.Model):
|
|||
|
||||
old_id = models.IntegerField(null=True, blank=True)
|
||||
|
||||
objects = AwardQuerySet.as_manager()
|
||||
|
||||
def __str__(self):
|
||||
title = 'None'
|
||||
lang = TranslationSettings.get_solo().default_language
|
||||
|
|
|
|||
|
|
@ -192,6 +192,15 @@ class SiteShortSerializer(serializers.ModelSerializer):
|
|||
]
|
||||
|
||||
|
||||
class AwardTypeBaseSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = models.AwardType
|
||||
fields = (
|
||||
'id',
|
||||
'name',
|
||||
)
|
||||
|
||||
|
||||
class AwardBaseSerializer(serializers.ModelSerializer):
|
||||
"""Award base serializer."""
|
||||
|
||||
|
|
@ -210,6 +219,8 @@ class AwardBaseSerializer(serializers.ModelSerializer):
|
|||
class AwardSerializer(AwardBaseSerializer):
|
||||
"""Award serializer."""
|
||||
|
||||
award_type = AwardTypeBaseSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Award
|
||||
fields = AwardBaseSerializer.Meta.fields + ['award_type', ]
|
||||
|
|
@ -218,6 +229,8 @@ class AwardSerializer(AwardBaseSerializer):
|
|||
class BackAwardSerializer(AwardBaseSerializer):
|
||||
"""Award serializer."""
|
||||
|
||||
award_type = AwardTypeBaseSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Award
|
||||
fields = AwardBaseSerializer.Meta.fields + [
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ from main.views import SiteSettingsView, SiteListView
|
|||
|
||||
class AwardLstView(generics.ListCreateAPIView):
|
||||
"""Award list create view."""
|
||||
queryset = Award.objects.all()
|
||||
queryset = Award.objects.all().with_base_related()
|
||||
serializer_class = serializers.BackAwardSerializer
|
||||
permission_classes = (permissions.IsAdminUser,)
|
||||
filterset_class = AwardFilter
|
||||
|
|
@ -23,7 +23,7 @@ class AwardLstView(generics.ListCreateAPIView):
|
|||
|
||||
class AwardRUDView(generics.RetrieveUpdateDestroyAPIView):
|
||||
"""Award RUD view."""
|
||||
queryset = Award.objects.all()
|
||||
queryset = Award.objects.all().with_base_related()
|
||||
serializer_class = serializers.BackAwardSerializer
|
||||
permission_classes = (permissions.IsAdminUser,)
|
||||
lookup_field = 'id'
|
||||
|
|
|
|||
|
|
@ -53,14 +53,14 @@ from utils.serializers import EmptySerializer
|
|||
class AwardView(generics.ListAPIView):
|
||||
"""Awards list view."""
|
||||
serializer_class = serializers.AwardSerializer
|
||||
queryset = models.Award.objects.all()
|
||||
queryset = models.Award.objects.all().with_base_related()
|
||||
permission_classes = (permissions.AllowAny,)
|
||||
|
||||
|
||||
class AwardRetrieveView(generics.RetrieveAPIView):
|
||||
"""Award retrieve view."""
|
||||
serializer_class = serializers.AwardSerializer
|
||||
queryset = models.Award.objects.all()
|
||||
queryset = models.Award.objects.all().with_base_related()
|
||||
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user