This has been forked from django-heroku because it was abandoned and then renamed to django-on-heroku because old project has been archived.
Current updates:
- renamed package from
django-heroku
todjango-on-heroku
- changed
psycopg2
topsycopg2-binary
so it works and is installable - added installation instructions
- fixed wipe'ing tables in Postgres
whitenoise.middleware.WhiteNoiseMiddleware
is injected afterdjango.middleware.security.SecurityMiddleware
This is a Django library for Heroku applications that ensures a seamless deployment and development experience.
This library provides:
- Settings configuration (Static files / WhiteNoise).
- Logging configuration.
- Test runner (important for Heroku CI).
Django 2.0 is targeted, but older versions of Django should be compatible. Only Python 3 is supported.
pip install django-on-heroku
In settings.py
, at the very bottom:
# Configure Django App for Heroku. import django_on_heroku django_on_heroku.settings(locals())
This will automatically configure DATABASE_URL
, ALLOWED_HOSTS
, WhiteNoise (for static assets), Logging, and Heroku CI for your application.
Bonus points!
If you set the SECRET_KEY
environment variable, it will automatically be used in your Django settings, too!
If you set the CONN_MAX_AGE
environment variable, it will automatically be used in your database settings, too!
settings()
accepts keyword arguments that are by default set to False
geodjango
- set it toTrue
if you want to use GeoDjango in our app
settings()
also accepts keyword arguments that can be passed False
as a value, which will disable automatic configuration for their specific areas of responsibility:
databases
test_runner
staticfiles
allowed_hosts
logging
secret_key
db_ssl_required
You can also just use this library to provide a test runner for your Django application, for use on Heroku CI:
import django_on_heroku TEST_RUNNER = 'django_on_heroku.HerokuDiscoverRunner'