Представления сторонних библиотек Django: определение async vs sync

Я хочу включить async в мою библиотеку Django. Если у меня есть библиотека Django, которая имеет 1) представление sync и 2) urls.py, который указывает на это представление sync, как мне поддерживать и sync и async?

Предположительно, я могу попросить разработчика установить параметр на LIBRARY_ENABLE_ASYNC, затем в файле views.py я могу написать:

from django.conf import settings

if settings.LIBRARY_ENABLE_ASYNC
   async def view(request): pass
else:
   def view(request): pass

Но это кажется не совсем... правильным? Конечно, я полагаю, что поскольку мы интегрируемся с Django ORM, мы будем разделять представления на два отдельных файла/каталога/ и файлы urls.py, и разработчик будет просто include() правильный urls.py на основе того, использует ли он ASGI/WSGI, но в случае, если вышеописанное произойдет, есть ли лучший способ определить, использует ли пользователь ASGI/WSGI?

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