mkone112 рассказываю как делаю это я.
Для начала объясню что такое local_settings.py, это файл с локальными настройками, где вы можете переопределить любую глобальную настройку (в том числе и SECRET_KEY). Его содержимое выглядит примерно так
from .settings import *
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
Этот файл нужно добавить в .gitignore и создавать вручную или автоматически на сервере где производится деплой. Самое главное, чтобы этот файл не попадал в репозиторий.
Таким образом вы можете не парится про SECRET_KEY который будет отправлен в репозиторий, вы просто при деплое переопределяете его на произвольный, вот так
from .settings import *
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'Мой самый секретный ключ'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
Далее же вы используете файл настроек при запуске вот так, при разработке. В gunicorn соответственно эту же настройку добавить нужно.
$ python manage.py runserver --settings=myproject.local_settings
Таким образом решается ваша проблема. А ваш SECRET_KEY в репозитории, не будет иметь ничего общего с реальным SECRET_KEY который на продакт сервере.