Djangochannelsrestframework websocket connection failed with error 500
Я создаю простое приложение чата, используя djangochannelsrestframework, но оно выдает ошибку при компиляции
WebSocket соединение с 'ws://localhost:8000/ws/' не удалось: Error during WebSocket handshake: Неожиданный код ответа: 500 отзыв об ошибке на django
Internal Server Error: /ws/
Traceback (most recent call last):
File "C:\Python39\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Python39\lib\site-packages\django\core\handlers\base.py", line 145, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Python39\lib\site-packages\django\core\handlers\base.py", line 143, in _get_response
response = response.render()
File "C:\Python39\lib\site-packages\django\template\response.py", line 105, in render
self.content = self.rendered_content
File "C:\Python39\lib\site-packages\django\template\response.py", line 81, in rendered_content
template = self.resolve_template(self.template_name)
File "C:\Python39\lib\site-packages\django\template\response.py", line 63, in resolve_template
return select_template(template, using=self.using)
File "C:\Python39\lib\site-packages\django\template\loader.py", line 47, in select_template
raise TemplateDoesNotExist(', '.join(template_name_list), chain=chain)
django.template.exceptions.TemplateDoesNotExist: index.html
[05/Oct/2021 19:21:55] "GET /ws/ HTTP/1.1" 500 83990
Мой код (приложение для чата)
consumers.py
from .models import Messages
from .serializers import MessagesSerializer
from djangochannelsrestframework.generics import GenericAsyncAPIConsumer
from djangochannelsrestframework import permissions
from djangochannelsrestframework.mixins import (
ListModelMixin,
RetrieveModelMixin,
PatchModelMixin,
UpdateModelMixin,
CreateModelMixin,
DeleteModelMixin,
)
class UserConsumer(
ListModelMixin,
RetrieveModelMixin,
PatchModelMixin,
UpdateModelMixin,
CreateModelMixin,
DeleteModelMixin,
GenericAsyncAPIConsumer,
):
queryset = Messages.objects.all()
serializer_class = MessagesSerializer
permission_classes = (permissions.AllowAny,)
routing.py
from django.urls import re_path
from . import consumers
websocket_urlpatterns = [
re_path(r"^ws/$", consumers.UserConsumer.as_asgi()),
]
serializers.py
#from django.db import models
#from django.db.models import fields
#from djoser.serializers import UserCreateSerializer
from rest_framework import serializers
from .models import Messages
class MessagesSerializer (serializers.ModelSerializer):
class Meta:
model = Messages
fields = ['id','sender','receiver','message','is_read','created_at']
Frontend
test.js
import React, {Component} from "react";
import MessageBox from "./MessageBox";
const ws = new WebSocket("ws://localhost:8000/ws/")
class Test extends Component{
constructor() {
super();
this.state = {
}
}
test = () => {
const data=ws.send(JSON.stringify({
action: "list",
request_id: new Date().getTime(),
}))
console.log('hi',data);
}
render() {
return(
<><br/><br/>
<div className='mt-5 pt-5'>
<h1>hello</h1>
<button onClick={()=>Test()}>hello</button>
</div>
</>
)
}
}
export default Test;
Как избавиться от этой ошибки