from rest_framework import viewsets, mixins from rest_framework.permissions import IsAdminUser, AllowAny from .models import SiteConfiguration from .serializers import ( SiteConfigurationAdminSerializer, SiteConfigurationPublicSerializer, ) class _SingletonQuerysetMixin: def get_queryset(self): return SiteConfiguration.objects.filter(pk=1) def get_object(self): return SiteConfiguration.get_solo() class SiteConfigurationAdminViewSet(_SingletonQuerysetMixin, viewsets.ModelViewSet): permission_classes = [IsAdminUser] serializer_class = SiteConfigurationAdminSerializer class SiteConfigurationPublicViewSet(_SingletonQuerysetMixin, viewsets.ReadOnlyModelViewSet): permission_classes = [AllowAny] serializer_class = SiteConfigurationPublicSerializer