Попытка использовать каналы в 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.