Якщо вам потрібна можливість - як і я - по-справжньому розпочати з нової бази даних, не отримуючи запитання про суперкористувача, тоді ви можете просто зняти реєстрацію обробника сигналу, який задає це запитання. Перегляньте нижню частину файлу:
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
було припинено на користь міграції даних