Python: 2.7; Django: 1.7; Mac 10.9.4
I\'m following the tutorial of Tango with Django
At Chapter 5, the tutorial teaches how to create a population script, w
I just stumbled about the same problem in my local development server.
After pulling some changed code in, the error was thrown. The problem here obviously has nothing to do with wsgi, so I tried to run manage.py
A simple: python manage.py
reveals the real error cause.
In my case a forgotten import of an external Django app.
Maybe this helps someone else out.
If you are using your django project applications in standalone scripts, in other words, without using manage.py
- you need to manually call django.setup()
first - it would configure the logging and, what is important - populate apps registry.
Quote from Initialization process docs:
setup()
This function is called automatically:
When running an HTTP server via Django’s WSGI support.
When invoking a management command.
It must be called explicitly in other cases, for instance in plain Python scripts.
In your case, you need to call setup()
manually:
if __name__ == '__main__':
print "Starting Rango population script..."
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'tangle.settings')
import django
django.setup()
populate()
Also, this problem is described in detail in Troubleshooting section.
I also encountered this problem using Django 1.7 on an Apache server. Changing the wsgi
handler call in my wsgi.py
file fixed the problem:
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
This was suggested here by user 'jezdez'.
I found this solution, adding
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
after
os.environ.setdefault ...