Fixed #21875 -- Clarified that get_user_model() only works at run time.

Thanks Benjamin White for the report.
This commit is contained in:
Aymeric Augustin 2014-03-10 21:11:23 +01:00
parent daaf6cf9a4
commit 1be31c320c
2 changed files with 8 additions and 0 deletions

View File

@ -869,6 +869,10 @@ regressions cannot be ruled out. You may encounter the following exceptions:
will also trigger this exception. The ORM cannot function properly until all will also trigger this exception. The ORM cannot function properly until all
models are available. models are available.
Another common culprit is :func:`django.contrib.auth.get_user_model()`. Use
the :setting:`AUTH_USER_MODEL` setting to reference the User model at import
time.
* ``ImportError: cannot import name ...`` This happens if the import sequence * ``ImportError: cannot import name ...`` This happens if the import sequence
ends up in a loop. ends up in a loop.

View File

@ -426,6 +426,10 @@ different User model.
post_save.connect(post_save_receiver, sender=settings.AUTH_USER_MODEL) post_save.connect(post_save_receiver, sender=settings.AUTH_USER_MODEL)
Generally speaking, you should reference the User model with the
:setting:`AUTH_USER_MODEL` setting in code that is executed at import
time. ``get_user_model()`` only works once Django has imported all models.
Specifying a custom User model Specifying a custom User model
------------------------------ ------------------------------