Django Channels замерзает при вызове внутреннего API Django-Filters

Я использую django-nextjs, который потребовал от меня установить Django Channels. Теперь все работает нормально, пока мой фронтенд не сделает вызов API к DRF APIView, который в свою очередь сделает вызов API к Django-Filters, чтобы вернуть набор запросов. Это замораживает весь сервер до тех пор, пока соединение не прервется. Есть ли у вас идея, как это можно исправить?

Мой asgi.py


import os

from django.core.asgi import get_asgi_application
from django.urls import re_path, path


os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.production')

django_asgi_app = get_asgi_application()

from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from django_nextjs.proxy import NextJSProxyHttpConsumer, NextJSProxyWebsocketConsumer

from django.conf import settings

http_routes = [re_path(r"", django_asgi_app)]
websocket_routers = []

if settings.DEBUG:
    http_routes.insert(0, re_path(r"^(?:_next|__next|next).*", NextJSProxyHttpConsumer.as_asgi()))
    websocket_routers.insert(0, path("_next/webpack-hmr", NextJSProxyWebsocketConsumer.as_asgi()))


application = ProtocolTypeRouter(
    {
        # Django's ASGI application to handle traditional HTTP and websocket requests.
        "http": URLRouter(http_routes),
        "websocket": AuthMiddlewareStack(URLRouter(websocket_routers)),
        # ...
    }
)

А вот мой APIView с внутренним вызовом API к Django Filters

class SearchAPI(APIView):

    permission_classes = []
    def get(self, request, *args, **kwargs):
        received_params = {}
        
        ...

                full_request = f"{settings.BASE_URL}api/filter-recipes/?{col_to_search}__icontains={search_term}{additional_filters}"
                print('full_request: ', full_request)
                response = httpx.get(full_request)
                print('response: ', response)
                response = response.json()
                response = response["results"] if "results" in response else response
                
        ...

        return Response(json.dumps(final_response))

Все замирает при вызове get: 'response = httpx.get(full_request)', есть ли способ перенастроить мой asgi.py, чтобы позволить внутреннему API быть запущенным и вернуть результат?

Спасибо за ваш вклад!

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