如何使用Linux shell脚本在Django中创建超级用户?

时间:2017-06-29 08:55:00

标签: linux django shell docker

最近,我要使用docker部署应用程序。我遇到了如何编写将在Linux上执行的启动脚本的问题。一个例子是作为研究员:

通常,我们会像这样创建超级用户:

iMac:mysite yetongxue$ python manage.py createsuperuser
Username (leave blank to use 'yetongxue'): root
Email address: example@qq.com
Password: 
Password (again): 
Superuser created successfully.

但是当使用docker部署应用程序时,我必须在脚本中编写此命令,该脚本将在docker容器启动后执行。如何在脚本中设置用户名,电子邮件和密码?谢谢!

#!/bin/bash

python manage.py createsuperuser

1 个答案:

答案 0 :(得分:11)

您可以使用createsuperuser管理命令,而不是provide a fixture

您需要为auth.user模型提供固定装置。对于密码,您可以通过Django shell生成一个

>>> from django.contrib.auth.hashers import make_password
>>> make_password('password')

您的最终灯具应如下所示:

[
    { "model": "auth.user",
        "pk": 1,
        "fields": {
            "username": "admin",
            "password": "<output of make_password()>"
            "is_superuser": true,
            "is_staff": true,
            "is_active": true
        }
    }
]