Ошибка при миграции, модуль не найден ошибка в Django

#python #django #virtualenv

#python #django #virtualenv

Вопрос:

Я попытался создать пользовательскую модель пользователя, поэтому я расширил AbstractBaseUser и BaseUserManager для управления моделью.

Ошибка, которую я получил, когда попытался перенести или запустить сервер:

 Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/media/amir/Development/Dev/blog/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/media/amir/Development/Dev/blog/venv/lib/python3.8/site-packages/django/core/management/commands/runserver.py", line 110, in inner_run
    autoreload.raise_last_exception()
  File "/media/amir/Development/Dev/blog/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 76, in raise_last_exception
    raise _exception[1]
  File "/media/amir/Development/Dev/blog/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 357, in execute
    autoreload.check_errors(django.setup)()
  File "/media/amir/Development/Dev/blog/venv/lib/python3.8/site-packages/django/utils/autoreload.py", line 53, in wrapper
    fn(*args, **kwargs)
  File "/media/amir/Development/Dev/blog/venv/lib/python3.8/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/media/amir/Development/Dev/blog/venv/lib/python3.8/site-packages/django/apps/registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
  File "/media/amir/Development/Dev/blog/venv/lib/python3.8/site-packages/django/apps/config.py", line 116, in create
    mod = import_module(mod_path)
  File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'django.contrib.messagesdjango'
  

Моя пользовательская модель пользователя:

 class Account(AbstractBaseUser):
        email = models.EmailField(verbose_name="email", max_length=100, unique=True)
        name = models.CharField(verbose_name="full name", max_length=100)
        username = models.CharField(max_length=30, unique=True)
        date_joined = models.DateTimeField(verbose_name="date joined", auto_now_add=True)
        last_login = models.DateTimeField(verbose_name="last login", auto_now=True)
        is_admin = models.BooleanField(default=False)
        is_active = models.BooleanField(default=True)
        is_staff = models.BooleanField(default=False)
        is_superuser = models.BooleanField(default=False)
    
        USERNAME_FIELD = "email"
        REQUIRED_FIELDS = ["username", "name"]
    
        objects = MyAccountManager()
    
        def __str__(self):
            return self.email
    
        def has_perm(self, perm, obj=None):
            return self.is_admin
        
        def has_module_perms(self, app_label):
            return True
  

и менеджер моделей:

 class MyAccountManager(BaseUserManager):
    def create_user(self, email, username, name, password=None):
        if not email:
            raise ValueError("Users must have an email address")
        if not username:
            raise ValueError("Users must have a username")
        
        user = self.model(
            email=self.normalize_email(email),
            username=self.username,
            name=self.name
        )
        
        user.set_password(password)
        user.save(using=self._db)
        return user
    
    def create_superuser(self, email, username, name):
        if not email:
            raise ValueError("Users must have an email address")
        if not username:
            raise ValueError("Users must have a username")
        
        user = self.create_user(
            email=self.normalize_email(email),
            username=self.username,
            name=self.name,
            password=password
        )
        user.is_admin = True
        user.is_staff = True
        user.is_superuser = True
        user.save(using=self._db)
        return user
  

Я думаю, что ошибка может быть связана с несовместимостью Python 3.8 и Django 3.1, которые я установил в своем venv:

список элементов:

 Package             Version
------------------- -------
asgiref             3.2.10
Django              3.1.1
djangorestframework 3.11.1
pip                 20.2.3
psycopg2            2.8.6
pytz                2020.1
setuptools          50.3.0
sqlparse            0.3.1
  

Комментарии:

1. Как ваш INSTALLED_APPS выглядит? Вы либо пропускаете запятую после django.contrib.messages , либо случайно скопировали что-то.

2. @yedpodtrzitko Вау, как это было просто :)). ответьте и позвольте мне согласиться.

Ответ №1:

Как ваш INSTALLED_APPS выглядит? Вы либо пропускаете запятую после django.contrib.messages , либо случайно скопировали что-то.