Fixed #26152 -- Documented how to avoid django.setup() deadlock in standalone scripts.

This commit is contained in:
Harry 2016-01-28 18:13:27 +00:00 committed by Tim Graham
parent ecd502cfdb
commit 0fb1185538
1 changed files with 11 additions and 0 deletions

View File

@ -291,6 +291,17 @@ Note that calling ``django.setup()`` is only necessary if your code is truly
standalone. When invoked by your Web server, or through :doc:`django-admin standalone. When invoked by your Web server, or through :doc:`django-admin
</ref/django-admin>`, Django will handle this for you. </ref/django-admin>`, Django will handle this for you.
.. admonition:: ``django.setup()`` may only be called once.
Therefore, avoid putting reusable application logic in standalone scripts
so that you have to import from the script elsewhere in your application.
If you can't avoid that, put the call to ``django.setup()`` inside an
``if`` block::
if __name__ == '__main__':
import django
django.setup()
.. seealso:: .. seealso::
:doc:`The Settings Reference </ref/settings>` :doc:`The Settings Reference </ref/settings>`