Как сделать размер пагинации изменяемым из администратора в Django Rest

В настоящее время я использую django-constance, который дает мне поля в админке с настраиваемыми значениями. А затем я делаю следующее:

from constance import config

def get_page_pagination_with_custom_page_size(size):
    class CustomPagination(PageNumberPagination):
        page_size = size

    return CustomPagination


class ArticleListViewSet(viewsets.ModelViewSet):

    queryset = Article.objects.all()
    serializer_class = ArticleListSerializer
    filter_backends = [DjangoFilterBackend]
    filterset_class = ArticleListFilterSet
    permission_classes = [AllowAny]
    pagination_class = get_page_pagination_with_custom_page_size(config.article_pagination)


С помощью этого я могу изменить config.article_pagination из админки, чтобы изменить пагинацию, но для того, чтобы применить все изменения, мне нужно перезапустить сервер. Как я могу сделать класс представления динамическим и улавливать все изменения "на лету"?

Вернуться на верх