Я использовал один вкладыш Tk421, но получил сообщение об ошибке: 1) Я думаю, что я использую более позднюю версию Django (1.10) Manager isn't available; 'auth.User' has been swapped for 'users.User'
2) порядок параметров для create_superuser был неправильным.
Так что я заменил его на:
echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.filter(email='admin@example.com', is_superuser=True).delete(); User.objects.create_superuser('admin', 'admin@example.com', 'nimda')" | python manage.py shell
, и что меня действительно порадовало, так это то, что оно работает и при развертывании героку:
heroku run echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.filter(email='admin@example.com', is_superuser=True).delete(); User.objects.create_superuser('admin', 'admin@example.com', 'nimda')" | python manage.py shell
Это будет работать многократно.Я использую его в начале проекта, поэтому не беспокойтесь об ужасных каскадных удалениях, которые могут произойти позже.
Я вернулся после некоторых проблем с запуском этого внутри local () из фабрики.то, что, казалось, происходило, - то, что символ трубы означает, что это интерпретировалось локально, а не на герою.Для сортировки я обернул команду в кавычки.Затем пришлось использовать тройные двойные кавычки для строк Python внутри одинарных кавычек всей команды Python.
heroku run "echo 'from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.filter(email="""admin@example.com""", is_superuser=True).delete(); User.objects.create_superuser("""admin""", """admin@example.com""", """nimda""")' | python manage.py shell"