title: why I cannot import models to a python script without using django.setup() first
body: <p>According to this answer (<a href="https://stackoverflow.com/questions/8047204/django-script-to-access-model-objects-without-using-manage-py-shell">Django script to access model objects without using manage.py shell</a>) before I can use Django models in my standalone python script it is enough to point it to the project's settings file:</p>
  
  <pre><code>import os
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
  from my_app.models import MyModel
  </code></pre>
  
  <p>This results in the error:</p>
  
  <pre><code>django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
  </code></pre>
  
  <p>This however works just fine:</p>
  
  <pre><code>import os
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings")
  import django
  django.setup()
  from my_app.models import MyModel
  </code></pre>
  
  <p>I use Django 2.1.7</p>
  
  <p>Is it required now to use <code>django.setup()</code> in each script where I use Django models?</p>