Проблема совместимости с Django-регистрации с django 1.7

Я использую [django-registration] (https://bitbucket.org/ubernostrum/django-registration), и теперь я начал использовать django 1.7b1, и вот ошибка, которую я получаю ошибка скопирована ниже. Он поднимается из django-регистрации в models.py:

try:
    from django.contrib.auth import get_user_model
    User = get_user_model()
except ImportError:
    from django.contrib.auth.models import User

и кажется, что он возникает, потому что get_user_model() вызывается до того, как реестр приложений готов. Я не уверен, что это проблема совместимости или нет, если да, есть ли простой способ обхода? и если нет, можете ли вы помочь мне определить, что я делаю неправильно?

RuntimeError: App registry isn't ready yet.
File "/Users/nima/pe-dev/manage.py", line 9, in <module>
  execute_from_command_line(sys.argv)
File "/Library/Python/2.7/site-packages/Django-1.7b1-py2.7.egg/django/core/management/__init__.py", line 427, in execute_from_command_line
  utility.execute()
File "/Library/Python/2.7/site-packages/Django-1.7b1-py2.7.egg/django/core/management/__init__.py", line 391, in execute
  django.setup()
File "/Library/Python/2.7/site-packages/Django-1.7b1-py2.7.egg/django/__init__.py", line 21, in setup
  apps.populate(settings.INSTALLED_APPS)
File "/Library/Python/2.7/site-packages/Django-1.7b1-py2.7.egg/django/apps/registry.py", line 106, in populate
  app_config.import_models(all_models)
File "/Library/Python/2.7/site-packages/Django-1.7b1-py2.7.egg/django/apps/config.py", line 190, in import_models
  self.models_module = import_module(models_module_name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
  __import__(name)
File "/Library/Python/2.7/site-packages/registration/models.py", line 15, in <module>
  User = get_user_model()
File "/Library/Python/2.7/site-packages/Django-1.7b1-py2.7.egg/django/contrib/auth/__init__.py", line 136, in get_user_model
  return django_apps.get_model(settings.AUTH_USER_MODEL)
File "/Library/Python/2.7/site-packages/Django-1.7b1-py2.7.egg/django/apps/registry.py", line 187, in get_model
  self.check_ready()
File "/Library/Python/2.7/site-packages/Django-1.7b1-py2.7.egg/django/apps/registry.py", line 119, in check_ready
  raise RuntimeError("App registry isn't ready yet.")

Ответ 1

Не используйте запись django, доступную из PyPI. Он не поддерживает Django 1.7, и, похоже, он никогда не будет. Сопровождающий репо отреагировал, и проект выглядит без изменений.

В Github имеется служебная вилка, которая хорошо работает для меня с Django 1.7:

https://github.com/macropin/django-registration

Он доступен из PyPI как django-registration-redux.

https://pypi.python.org/pypi/django-registration-redux/

Вы можете установить с помощью pip:

pip install django-registration-redux

Ответ 2

Эта заметка устраняет вашу проблему.

Я думаю, что предпочтительным способом импорта User является:

from django.conf import settings
User = settings.AUTH_USER_MODEL

EDIT:

Похоже, эта проблема была отмечена, но администратору проекта сложно внести изменения. ссылка. Это большая проблема с обновлениями в Django 1.7.

Я бы сказал, что вы можете: (1) разблокировать репо и внести изменения самостоятельно, или (2) внести изменения в папку пакетов своего сайта после того, как вы установите пакет. Последняя версия не будет работать, если вы затем переместите ее на другой сервер и установите с помощью требования .txt. Обратите внимание, что если вы выполните вариант 1 с требованиями .txt, вы захотите указать его на свое репо, а не на регистрацию в Django.