移行時にスーパーユーザーが存在しない場合、Django がスーパーユーザーを作成します。
I have a migration that creates a superuser if it does not exist. <code>def create_superuser(apps, schema_editor): User = apps.get_model('auth', 'User') if not User.objects.filter(username='admin').exists(): User.objects.create_superuser('admin', 'admin@example.com', 'password') class Migration(migrations.Migration): dependencies = [ ('myapp', '0001_initial'), ] operations = [ migrations.RunPython(create_superuser), ] </code>
最初の行は、スーパーユーザーがまだ存在しない場合にスーパーユーザーを作成する関数を作成します。
XNUMX 行目は、「auth」アプリから User モデルを取得します。
XNUMX 行目は、ユーザー名が「admin」のユーザーが存在するかどうかを確認します。 そうでない場合は、
XNUMX 行目は、ユーザー名「admin」、電子メール アドレス「admin@example.com」、パスワード「password」を持つスーパーユーザーを作成します。
0001 行目と XNUMX 行目は移行クラスを作成し、アプリ「myapp」の移行「XNUMX_initial」に依存することを指定します。
XNUMX 行目では、移行で「create_superuser」関数を実行する必要があることを指定しています。
スーパーユーザーとは
スーパーユーザーは、Django サイトの管理者権限を持つユーザーです。 モデル、ビュー、アプリケーションの作成と管理などを行うことができます。