Ошибка при настройке каналов django для подключения к htmx

У меня возникла проблема при попытке разработать функцию обмена сообщениями в реальном времени с использованием каналов daphne и htmx. Я добавил каналы, django_htmx в INSTALLED_APPS в settings.py,

Это файл asgi.py: `import os

from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.security.websocket import AllowedHostsOriginValidator
from channels.auth import AuthMiddlewareStack

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'server.settings')

django_asgi_app = get_asgi_application()

from Chat import routing

application = ProtocolTypeRouter({
    "http": django_asgi_app,
    "websocket": AllowedHostsOriginValidator(
        AuthMiddlewareStack(URLRouter(routing.websocket_urlpatterns))
    )
})

`

Это файл routing.py `import os

from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.security.websocket import AllowedHostsOriginValidator
from channels.auth import AuthMiddlewareStack

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'server.settings')

django_asgi_app = get_asgi_application()

from Chat import routing

application = ProtocolTypeRouter({
    "http": django_asgi_app,
    "websocket": AllowedHostsOriginValidator(
        AuthMiddlewareStack(URLRouter(routing.websocket_urlpatterns))
    )
})`

Это файл consumers.py: `import json

from channels.generic.websocket import WebsocketConsumer
from .models import *
from django.shortcuts import get_object_or_404


class ChatConsumer(WebsocketConsumer):
    def connect(self):
        self.user = self.scope['user']
        self.partner_name = self.scope['url_route']['kwargs']['username']
        self.partner = get_object_or_404(User, username=self.partner_name)
        self.accept()

    def disconnect(self, code):
        pass

    def receive(self, text_data):
        text_data_json = json.loads(text_data)
        content = text_data_json['content']

        msg = Message.objects.create(
            sender=self.user,
            receiver=self.partner,
            content=content
        )

`

Это файл HTMX: <form hx-ext="ws" ws-connect="ws/chat/{{partner.username}}" ws-send="send:click" hx-swap="outerHTML" _="on htmx:wsAfterSend reset() me"> {% csrf_token %} <div class="flex-grow-0 py-3 px-4 border-top" style="top: 0;"> <div class="input-group"> <input type="text" class="form-control" placeholder="Type your message" name="content" /> <button type="submit" class="btn btn-primary" >Gửi</button> </div> </div> </form>

Пожалуйста, помогите мне найти ошибку и исправить ее

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