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 причинами.

  1. При изменении порядка зависимостей в установленных приложениях.
  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')

Последнее слово:

  1. Прокомментируйте определенные группы пользователей, например:#TA,created=Group.objects.get_or_create(name='teachers')
  2. Бегатьpython makemigrations your_project_name
  3. python migrate your_project_name
  4. Затем раскомментируйте определенные группы:TA,created=Group.objects.get_or_create(name='teachers')

И вы готовы идти.

В дополнение ко всем остальным ответам я столкнулся с этой проблемой, когда обновил Django. У меня был импорт, который устарел из одной версии в другую. Перед обновлением любого пакета обязательно ознакомьтесь с примечаниями к выпуску/историей версий.

https://docs.djangoproject.com/en/dev/releases/

Я потратил много времени на отладку этого, но я не знаю, как возникла эта проблема, но она была решена, когда я изменил имя своего класса с:

      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. Это может определить, есть ли у вас проблемы с импортом, которые вы можете исправить, а затем запустить сервер, чтобы проверить

Другие вопросы по тегам