Проблема импорта модели в потребителя django Websockets
Я хочу написать потребитель для приложения, однако после импорта модели Device приложение даже не хочет запускаться, выдает ошибку, что не может найти настройки приложения.
# consumers.py
import json
from channels.generic.websocket import AsyncWebsocketConsumer
# from devices.models import Device
class DeviceConsumer(AsyncWebsocketConsumer):
async def connect(self):
self.device_id = self.scope['url_route']['kwargs']['device_id']
print(self.device_id)
await self.accept()
async def disconnect(self, close_code):
await self.close()
async def receive(self, text_data):
text_data_json = json.loads(text_data)
message = text_data_json['message']
print(message)
await self.send(text_data=json.dumps({'message': message}))
А вот модели устройства и пользователя:
from django.db import models
from users.models import User
from core.base.utils import generate_uuid
class Device(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
device_key = models.CharField(max_length=255, unique=True, default=generate_uuid)
is_active = models.BooleanField(default=True)
def __str__(self):
return self.name
from django.db import models
from django.contrib.auth.models import AbstractUser
from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _
class User(AbstractUser):
first_name = models.CharField(_("first_name "), max_length=60, blank=False)
last_name = models.CharField(_("last_name "), max_length=60, blank=False)
username = models.CharField(_("username"), max_length=60, unique=True)
email = models.EmailField(_("email address"), max_length=255, blank=False, unique=True)
is_staff = models.BooleanField(
_("is staff"),
default=False,
help_text=_("Determines whether the user can log in to this administrative site."),
)
is_active = models.BooleanField(
_("is active"),
default=True,
help_text=_(
"Indicates whether this user should be considered active."
"Uncheck this box instead of deleting accounts."
),
)
date_joined = models.DateTimeField(_("дата создания"), default=now)
USERNAME_FIELD = "username"
EMAIL_FIELD = "email"
REQUIRED_FIELDS = ["first_name", "last_name", "email"]
def __str__(self):
return f"{self.first_name} {self.last_name} ({self.username}) {self.email}"
class Meta:
verbose_name = _("user")
verbose_name_plural = _("users")
db_table = "users"
В чем может быть проблема? Мне нужно использовать устройство в потребителе. Я перепробовал все, что предлагал Интернет для решения этой ошибки...
Ошибка, возникающая при добавлении импорта:
Хотя все настройки присутствуют на месте....
Проблема заключается в импорте модуля настроек. Если у вас все в порядке, проверьте, запустив shell
python manage.py shell
then
from django.conf import settings
print(settings.INSTALLED_APPS)
Если вы столкнулись с ошибкой, проверьте структуру проекта еще раз:
backend/
core/
__init__.py
settings.py
asgi.py
urls.py
devices/
models.py
consumers.py
users/
models.py
Надеюсь, вы настроили «core.settings» в файле asgi.py