Если вы хотите, чтобы у вас была возможность - как и я - действительно начать со свежей базой данных, не задавая этот вопрос суперпользователя, вы можете просто отменить регистрацию обработчика сигналов, который задает этот вопрос. Загляните в самый низ файла:
django/contrib/auth/management/__init__.py
чтобы увидеть, как выполняется регистрация функции суперпользователя. Я обнаружил, что могу отменить эту регистрацию и никогда не получить вопрос во время "syncdb", если я поместил этот код в свой "models.py":
from django.db.models import signals
from django.contrib.auth.management import create_superuser
from django.contrib.auth import models as auth_app
signals.post_syncdb.disconnect(
create_superuser,
sender=auth_app,
dispatch_uid = "django.contrib.auth.management.create_superuser")
Я не уверен, как гарантировать, что этот код запускается после кода Django, который выполняет регистрацию. Я думал, что это будет зависеть от того, будет ли ваше приложение или приложение django.contrib.auth упомянуто первым в INSTALLED_APPS, но, похоже, это работает для меня независимо от того, в каком порядке я их помещаю. Может быть, они сделаны в алфавитном порядке, и я повезло, что имя моего приложения начинается с буквы после "d"? Или Django достаточно умен, чтобы сначала делать свои вещи, а потом мои на случай, если я захочу испортить их настройки? Дай мне знать, если узнаешь. :-)
syncdb
устарел в пользу миграции данных