Попытка использовать каналы в Django вызвала следующие ошибки

Я пытался использовать каналы в Django, Для этого я следовал руководству и сделал следующие изменения в файле asgi.py

from channels.routing import ProtocolTypeRouter
application = ProtocolTypeRouter(
{
    "http":get_asgi_application()
})

и эти в файле settings.py

ASGI_APPLICATION = 'lostAndFound.wsgi.application'

после этого я перезапустил сервер и получил внутреннюю ошибку сервера, а также ошибку в терминале

`Exception inside application: WSGIHandler.__call__() takes 3 positional arguments but 4 were given

Traceback (последний последний вызов): Файл "/home/alaa/.local/lib/python3.10/site-packages/channels/staticfiles.py", строка 44, in call. return await self.application(scope, receive, send) TypeError: WSGIHandler.call() принимает 3 позиционных аргумента, но было задано 4`

может ли кто-нибудь помочь мне с этим

Вы импортируете его: from django.core.asgi import get_asgi_application

У вас опечатка в настройках:

# You have "wsgi"
ASGI_APPLICATION = 'testproject.wsgi.application'
                                ^
                                |   
# And it should be "asgi"       v      
ASGI_APPLICATION = 'testproject.asgi.application'

Поэтому сервер не работает, потому что он ожидает, что будут предоставлены представления asgi (с другой сигнатурой), а вы подаете wsgi.

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