Не удалось реализовать приложение для чата между пользователями в режиме реального времени в REST-фреймворке Django

Я новичок в веб-разработке и я работаю над одним проектом, и в этом проекте я должен создать приложение чата в реальном времени user-to-user, используя django rest framework. Я реализовал это в самом django, используя пакет channels (создал потребителей, маршрутизацию, шаблоны, js файлы и некоторые другие вещи), но теперь я застрял, не знаю, что делать. Цель состоит в том, что я должен сделать API в DRF и разработчики Flutter должны связать его.

Вот мой models.py

class Thread(models.Model):
    first_person = models.ForeignKey(User, on_delete=models.CASCADE, null=True, 
                                    blank=True, related_name='thread_first_person')
    second_person = models.ForeignKey(User, on_delete=models.CASCADE, null=True, 
                                    blank=True, related_name='thread_second_person')
    
    updated = models.DateTimeField(auto_now=True)
    timestamp = models.DateTimeField(auto_now_add=True)
    
    objects = ThreadManager()
    
    class Meta:
        unique_together = ['first_person', 'second_person']


class ChatMessage(models.Model):
    thread = models.ForeignKey(Thread, null=True, blank=True, on_delete=models.CASCADE, related_name='chatmessage_thread')
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    message = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)

consumers.py

routing.py

from django.urls import path
from . import consumers

websocket_urlpatterns = [
    path('chat/', consumers.ChatConsumer.as_asgi()),
]
import os

from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
import chat.routing

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

application = ProtocolTypeRouter({
    'http': get_asgi_application(),
    'websocket': AuthMiddlewareStack(
        URLRouter(
            chat.routing.websocket_urlpatterns
        )
    )
})

messages.js

Summary: Как я могу пропустить front side (js, шаблоны) и построить не обычный Django проект, а сделать API приложение для чата между пользователями, используя DRF

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