django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL ссылается на модель auth.User, которая не была установлена
После переноса моих пакетов django и userena, как показано ниже
Джанго 1.8 - Джанго 1.9.7
django-userena 1.4.1 для django-userena==2.0.1
После запуска проекта я получаю ниже этой ошибки
Unhandled exception in thread started by <function wrapper at 0xb689641c>
Traceback (most recent call last):
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper
fn(*args, **kwargs)
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 116, in inner_run
self.check(display_num_errors=True)
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 426, in check
include_deployment_checks=include_deployment_checks,
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/core/checks/registry.py", line 75, in run_checks
new_errors = check(app_configs=app_configs)
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/core/checks/urls.py", line 13, in check_url_config
return check_resolver(resolver)
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/core/checks/urls.py", line 23, in check_resolver
for pattern in resolver.url_patterns:
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/utils/functional.py", line 33, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 417, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/utils/functional.py", line 33, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 410, in urlconf_module
return import_module(self.urlconf_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/Documents/swamy/sample_project/july/5/sample11/sampleapp/urls.py", line 28, in <module>
(r'^grappelli/', include('grappelli.urls')),
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/conf/urls/__init__.py", line 52, in include
urlconf_module = import_module(urlconf_module)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/grappelli/urls.py", line 8, in <module>
from .views.switch import switch_user
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/grappelli/views/switch.py", line 18, in <module>
User = get_user_model()
File "/home/Documents/environments/venv/local/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 155, in get_user_model
"AUTH_USER_MODEL refers to model '%s' that has not been installed" % settings.AUTH_USER_MODEL
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL ссылается на модель auth.User, которая не была установлена
Вот INSTALLED_APPS в моем файле настроек,
'grappelli.dashboard',
'grappelli',
'filebrowser',
'django.contrib.admindocs',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'django.contrib.staticfiles',
'django.contrib.redirects',
'django.contrib.sitemaps',
'haystack',
'memcache_status',
'stheme',
'home',
'customers',
'orders',
#'legacy',
'products',
'bloglets',
'utils',
'catax',
'sqls',
'quotes',
#'django_stylus',
#'djgrid',
#'obdjects',
'quickpages',
'loginas',
#'pyjade',
'django_countries',
'debug_toolbar',
'djide',
#'dbtemplates',
#'aloha', # out temporarily, migrate to alternate https://github.com/ntucker/django-aloha-edit - JJW
'coffeescript',
'django_wysiwyg',
#'django_bfm',
'userena',
'guardian',
#'apps',
#'filer',
'easy_thumbnails',
'taggit',
#'taggit_templatetags',
# 'social_auth',
'social.apps.django_app.default',
#'socialregistration',
#'socialregistration.contrib.linkedin',
'email_extras',
#'csvimport',
'csvimport.app.CSVImportConf',
'django_extensions',
'webshell',
'easy_select2',
#'plata',
#'plata.contact',
#'plata.discount',
#'plata.payment',
#'plata.shop',
'lastmodule',
Я думаю, что есть некоторые изменения в приложениях Python. Но я не могу найти причину... Кто-нибудь помогает решить эту проблему?
Заранее спасибо!
17 ответов
Эта проблема обычно находится между 2 причинами.
- При изменении порядка зависимостей в установленных приложениях.
- Когда вы вообще не упомянули зависимость в установленных приложениях.
Здесь в этом случае grappelli, кажется, поднимает проблему, говорящую auth.User
не найдено. Это означает, что он не может найти какой-либо пакет auth
, Если вы используете модель пользователя по умолчанию, удалите это AUTH_USER_MODEL
настройка из конфигурации или если вы используете какую-либо пользовательскую модель в пакете 'auth', укажите ее в установленных приложениях.
Я столкнулся с проблемой операции, как только решил перейти с одногоmodels.py
файл в папку, содержащуюuser.py
файл для определения пользовательскогоUser
модель.
В этом случае, как описано здесь, хитрость заключается в том, чтобы импортировать информацию о вашей модели в файл вашегоmodels
папка.
Например, если ваша структура каталогов:
profiles
models
__init__.py
user.py
в__init__.py
файл, добавитьfrom .user import User
Если ваше приложение не называется auth, вам необходимо заменить его:AUTH_USER_MODEL='your_app_name.User'
Полная трассировка поможет лучше ее диагностировать. На первый взгляд, это проблема зависимости, вызванная миграцией. Посмотрите, что Django Docs должен сказать по этому поводу -
Из-за ограничений функции динамической зависимости Django для заменяемых моделей вы должны убедиться, что модель, на которую ссылается AUTH_USER_MODEL, создается при первой миграции его приложения (обычно это называется 0001_initial); в противном случае у вас будут проблемы с зависимостями.
Вот ссылка - https://docs.djangoproject.com/en/1.9/topics/auth/customizing/
Это потому, что у вас есть приложениеauth, в котором вы определили свою модель пользователя. и Вы не упомянули название приложения в словаре INSTALLED_APPS.
Попробуйте добавить название своего приложения в INSTALLED_APPS и проверьте.
Как только у меня возникла такая же проблема в v-2.2, я понял, что написание слова "register" в файле admin.py было неправильным.
Убедитесь, что вы написали свой код пользовательского пользователя в
models.py
файл.
В моем случае мне пришлось обновить файл admin.py и включить мою модель пользователя. Например, внутри моего приложения есть папка model, в которой есть вход в папку и файл usuario.py с классом Usuario.
Затем в папке приложения я обновил файл admin.py, включив в него эту модель.
from django.contrib import admin
# Register your models here.
from .model.login.usuario import Usuario
У меня была такая же проблема, и я решил:
Комментируя ГРУППЫ ПОЛЬЗОВАТЕЛЕЙ, которые я создал вmodels.py
; например.
TA,created=Group.objects.get_or_create(name='teachers')
Последнее слово:
- Прокомментируйте определенные группы пользователей, например:
#TA,created=Group.objects.get_or_create(name='teachers')
- Бегать
python makemigrations your_project_name
-
python migrate your_project_name
- Затем раскомментируйте определенные группы:
TA,created=Group.objects.get_or_create(name='teachers')
И вы готовы идти.
В дополнение ко всем остальным ответам я столкнулся с этой проблемой, когда обновил Django. У меня был импорт, который устарел из одной версии в другую. Перед обновлением любого пакета обязательно ознакомьтесь с примечаниями к выпуску/историей версий.
Я потратил много времени на отладку этого, но я не знаю, как возникла эта проблема, но она была решена, когда я изменил имя своего класса с:
class User(AbstractUser):
#to
class CustomUser(AbstractUser):
#and in settings.py:
AUTH_USER_MODEL = 'api.CustomUser'
если кто-то снова получит эту ошибку, может быть, это поможет
Я почти не пытался отлаживать эту ошибку целый день.
Проблема в том, что я написал модель в своем основном приложении, а не в приложении аутентификации.
Это связано с тем, что у вас есть приложение «auth», в котором вы определили свою модель пользователя. и вы не упомянули название приложения в словаре INSTALLED_APPS.
Попробуйте добавить название своего приложения в INSTALLED_APPS и проверьте.
Эта ошибка появилась, когда у меня была неправильно настроенная модель и я добавил ее в админку.
Wrong:
class VolunteerExperience:
...
Correct:
class VolunteerExperience(models.Model):
...
Надеюсь, это поможет кому-то, кого неверно направляет сообщение об исключении. "django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'auth.User' that has not been installed"
Теперь я знаю, что это сообщение, скорее всего, указывает на неправильно настроенную модель.
Эта ошибка также может появиться из-за отсутствия импорта модели в admin.py (Django версии 2.2).
Я сомневаюсь, что это типичный ответ, но я столкнулся с этой проблемой, когда использовал reverse
и должен был использовать reverse_lazy
. Переход наreverse_lazy
исправил это для меня.
Попробуйте сначала выполнить миграции; python manage.py makemigrations. Это может определить, есть ли у вас проблемы с импортом, которые вы можете исправить, а затем запустить сервер, чтобы проверить