【问题标题】:How to automate superuser creation for my django project on first migration?如何在第一次迁移时为我的 django 项目自动创建超级用户?
【发布时间】:2021-09-22 03:57:38
【问题描述】:

我正在使用命令python manage.py createsuperuser创建超级用户

我想在运行我的第一次迁移时设置电子邮件、密码并创建超级用户。

实现这一目标的最佳方法是什么?

【问题讨论】:

  • python manage.py createsuperuser 你已经说过该怎么做
  • Django 超级用户确实要求提供电子邮件和密码?我对您的要求感到困惑?
  • 您应该立即运行您的第一次迁移以立即设置您的 sql lite。
  • 我想在我的第一次数据库迁移时自动创建超级用户。

标签: django django-models django-rest-framework django-views django-forms


【解决方案1】:

以自动方式创建超级用户的问题在于,您必须将密码硬编码到源代码中,这被认为是一种不好的做法。不过,如果你不忘记登录后立即更改它,那也不会那么糟糕。

您可以使用 RunPython 将自定义 python 代码添加到您的迁移文件中。

假设您有一个名为 core 的应用。您可以编辑现有迁移(尚未在服务器上应用)或添加新迁移(我将使用第二个选项)。

python manage.py makemigrations core --empty

现在在创建的文件中添加RunPython 条目:

from django.conf import settings
from django.db import migrations


def create_superuser(apps, editor):
    User = apps.get_model(settings.AUTH_USER_MODEL)
    User.objects.create_superuser('superuser@example.com', 'changethispassword')


class Migration(migrations.Migration):
    dependencies = [
        ('core', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(create_superuser, migrations.RunPython.noop),
    ]

【讨论】:

    猜你喜欢
    • 2019-08-21
    • 2022-11-13
    • 2018-04-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 2017-01-30
    • 2019-04-01
    相关资源
    最近更新 更多