Django - Unit test RuntimeError класс модели не объявляет явную метку app_label
Привет всем. У меня возникла проблема с запуском юнит-тестов в моем новом проекте Django.
Всякий раз, когда я пытаюсь запустить их в PyCharm, я получаю ошибку:
ImportError: Failed to import test module: backend.dtva_app.models
Traceback (most recent call last):
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/unittest/loader.py", line 470, in _find_test_path
package = self._get_module_from_name(name)
File "/Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/Users/tumpa/PycharmProjects/appon_dtva/backend/../backend/dtva_app/models/__init__.py", line 1, in <module>
from .user import CustomUser
File "/Users/tumpa/PycharmProjects/appon_dtva/backend/../backend/dtva_app/models/user.py", line 7, in <module>
class CustomUser(AbstractUser):
File "/Users/tumpa/PycharmProjects/appon_dtva/backend/.venv/lib/python3.9/site-packages/django/db/models/base.py", line 134, in __new__
raise RuntimeError(
RuntimeError: Model class backend.dtva_app.models.user.CustomUser doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
Другие файлы, которые могут быть полезны:
УСТАНОВЛЕННЫЕ_АППАРАТЫ:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework_simplejwt',
'corsheaders',
'dtva_app',
'drf_spectacular',
]
Мое приложение называется dtva_app и вот конфиг apps.py:
class DtvaAppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'dtva_app'
Здесь упоминается модель CustomUser:
class CustomUser(AbstractUser):
username = None
email = models.EmailField("email address", unique=True)
USERNAME_FIELD = "email"
REQUIRED_FIELDS = []
objects = CustomUserManager()
def __str__(self):
return self.email
@property
def full_name(self):
return f"{self.first_name} {self.last_name}"
Кроме того, все тесты распознаются, остальные части приложения работают нормально, конечные точки, модели, миграции, представления и т. д.. Все хорошо, кроме запуска модульных тестов.
Кроме того, все импортируется в файлы __init__.py
корректно, и запуск юнит-тестов из терминала вне PyCharm приводит к тем же результатам.
Есть идеи?
ОБНОВИТЬ
Я добавил класс Meta с меткой app_label в модель CustomUser, и ошибка исчезла, но теперь я получаю следующую ошибку:
RuntimeError: Conflicting 'customuser_groups' models in application 'dtva_app': <class 'dtva_app.models.user.CustomUser_groups'> and <class 'backend.dtva_app.models.user.CustomUser_groups'>.