Вы думаете, что это правильно, секретный ключ не должен меняться при каждом запуске.Другие люди должны создать свои собственные вручную, а затем совершить репо.Другой способ - загрузить его из переменных среды и позволить им поместить свой ключ туда.
О втором вопросе - единственная причина, по которой вам нужно это сделать, - это компрометация ключа.Согласно документации:
Секретный ключ используется для:
Для всех сессий, если вы используете какой-либо другой сеансовый бэкэнд, кроме django.contrib.sessions.backends.cache, или используете по умолчанию get_session_auth_hash().
Все сообщения, если вы используете CookieStorage или FallbackStorage.
Все токены PasswordResetView.
Любое использование криптографической подписи, если не предоставлен другой ключ.
Таким образом, изменение этого параметра, вероятно, приведет к выходу из системы всех пользователей и аннулированию ссылок на пароль / сброс.Это не то, что вы хотели бы делать на регулярной основе, но не полная катастрофа.