from rest_framework import viewsets, mixins from rest_framework.permissions import IsAdminUser, AllowAny from .models import ShopConfiguration from .serializers import ( ShopConfigurationAdminSerializer, ShopConfigurationPublicSerializer, ) class _SingletonQuerysetMixin: def get_queryset(self): return ShopConfiguration.objects.filter(pk=1) def get_object(self): return ShopConfiguration.get_solo() class ShopConfigurationAdminViewSet(_SingletonQuerysetMixin, viewsets.ModelViewSet): permission_classes = [IsAdminUser] serializer_class = ShopConfigurationAdminSerializer class ShopConfigurationPublicViewSet(_SingletonQuerysetMixin, viewsets.ReadOnlyModelViewSet): permission_classes = [AllowAny] serializer_class = ShopConfigurationPublicSerializer