Как подключить htmx с помощью webstocket
Я создаю чат в реальном времени, используя htmx connect с webstocket в Django, когда я пытаюсь отправить сообщение, сообщение не отображается, и я получаю эту ошибку в терминале "HTTP GET /? csrfmiddlewaretoken=frNekEsvdZ6jdJp7gYMF7pvXpnO11m3J3vOpJ7XCsAKLogIBuUpuKizmufpWRKxN&body=hi+aneeb 200 [0.04, 127.0.0.1:54773]" вот мой файл 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', 'a_core.settings')
django_asgi_app = get_asgi_application()
from a_realchat import routing
application = ProtocolTypeRouter({
"http": django_asgi_app,
"websocket": AllowedHostsOriginValidator(
AuthMiddlewareStack(URLRouter(routing.websocket_urlpatterns))
),
})
здесь мой файл routing.py:
from django.urls import path
from .consumers import *
websocket_urlpatterns = [
path("ws/chatroom/chatroom_name",ChatroomConsumer.as_asgi()),
]
здесь my consumers.py:
from channels.generic.websocket import WebsocketConsumer
from django.shortcuts import get_object_or_404
from .models import GroupChat,GroupMessage
import json
class ChatroomConsumer(WebsocketConsumer):
def connect(self):
self.user = self.scope['user']
self.chatroom_name = self.scope['url_route']['kwargs']['chatroom_name']
self.chatroom = get_object_or_404(GroupChat,group_name=self.chatroom_name)
self.accept()
def receive(self ,text_data):
text_data_json = json.loads(text_data)
body = text_data_json['body']
message = GroupMessage.objects.create(
body=body,
auther=self.user,
group=self.chatroom,
)
мой .html файл, в котором я подключаю ws
<form id="chat_message_form" class="w-full"
hx-ext="ws"
ws-connect = "ws/chatroom/TalkAboutPython"
ws-send
_="on htmx:wsAfterSend reset() me"
>
{% csrf_token %}
{{ form }}
</form>