解決済み: django が移行時に存在しない場合にスーパーユーザーを作成する方法

移行時にスーパーユーザーが存在しない場合、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 サイトの管理者権限を持つユーザーです。 モデル、ビュー、アプリケーションの作成と管理などを行うことができます。

関連記事:

コメント