ModuleNotFoundError: Нет модуля с именем 'users.routing.websocket_urlpatterns'; 'users.routing' не является пакетом
Я пытаюсь установить связь в реальном времени между User Dashboard и Admin Dashboard для уведомлений.
Это мой backend/asgi.py
import os
from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
from users.routing import websocket_urlpatterns
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings')
application = ProtocolTypeRouter({
"http": get_asgi_application(),
"websocket": AuthMiddlewareStack(
URLRouter(
websocket_urlpatterns
)
),
})
backend/urls.py
from django.contrib import admin
from django.urls import path, include, re_path
urlpatterns = [
path('admin/', admin.site.urls),
path('api/users/', include('users.urls')),
re_path(r'^ws/', include('users.routing.websocket_urlpatterns')),
]
users/routing.py
from django.urls import re_path
from . import consumers
websocket_urlpatterns = [
re_path(r'ws/notifications/', consumers.NotificationConsumer.as_asgi()),
]
users/consumers.py
import json
from channels.generic.websocket import AsyncWebsocketConsumer
class NotificationConsumer(AsyncWebsocketConsumer):
async def connect(self):
self.group_name = 'notifications'
# Join room group
await self.channel_layer.group_add(
self.group_name,
self.channel_name
)
await self.accept()
async def disconnect(self, close_code):
# Leave room group
await self.channel_layer.group_discard(
self.group_name,
self.channel_name
)
async def receive(self, text_data):
data = json.loads(text_data)
message = data['message']
# Send message to room group
await self.channel_layer.group_send(
self.group_name,
{
'type': 'notification_message',
'message': message
}
)
async def notification_message(self, event):
message = event['message']
# Send message to WebSocket
await self.send(text_data=json.dumps({
'message': message
}))
Когда я тестирую импорт в Django Shell, он работает
(venv) lucy@lucy:~/staking_platform$ python manage.py shell
Python 3.8.10 (default, Nov 22 2023, 10:22:35)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from users.routing import websocket_urlpatterns
>>>
now exiting InteractiveConsole...
Но если я пытаюсь запустить qcluster, он выдает ModuleNotFoundError
Я потерялся и ищу кого-нибудь, кто мог бы мне помочь.