Question

J'utilise [django-registration] (https://bitbucket.org/ubernostrum/django-registration) et maintenant j'ai commencé à utiliser Django 1.7b1 et voici l'erreur que je reçois ci-dessous.Il est issu de l'enregistrement de Django dans models.py:

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

et il semble qu'il soit soulevé parce que get_user_model() est appelé avant que le registre des applications ne soit prêt.Je ne sais pas s'il s'agit d'un problème de compatibilité ou non, si oui, existe-t-il une solution simple à ce problème ?et sinon, pouvez-vous m'aider à identifier ce que je fais de mal ?

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.")
Était-ce utile?

La solution

N'utilisez pas l'enregistrement Django disponible sur PyPI.Il ne prend pas en charge Django 1.7 et il semble que ce ne sera jamais le cas.Le responsable du dépôt a abdiqué et le projet ne semble pas maintenu.

Il existe un fork de maintenance disponible sur Github qui a bien fonctionné pour moi avec Django 1.7 :

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

Il est disponible sur PyPI sous le nom django-registration-redux.

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

Vous pouvez installer en utilisant pip :

pip install django-registration-redux

Autres conseils

Cette note répond à votre problème.

Je pense que la meilleure façon d'importer un utilisateur est :

from django.conf import settings
User = settings.AUTH_USER_MODEL

MODIFIER:

Il semble que ce problème ait été noté, mais l'administrateur du projet a du mal à effectuer le changement. lien.Il s'agit d'un problème plus important avec les mises à jour de Django 1.7.

Je dirais que vous pourriez soit :(1) créez le dépôt et effectuez la modification vous-même, ou (2) effectuez les modifications dans le dossier des packages de votre site après l'installation de pip.Cette dernière version ne fonctionnera pas aussi bien si vous la transférez ensuite sur un autre serveur et l'installez avec Requirements.txt.Notez que si vous effectuez l'option 1 avec Requirements.txt, vous souhaiterez le pointer vers votre dépôt plutôt que vers l'enregistrement Django.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top