1

我正在使用 django-tenant-schema(和 postgresql)开发一个多租户应用程序。现在,一旦创建了新模式,我就使用 call_command 创建超级用户。我还想到了使用信号 post_migrate 的选项。

我的疑问是如何在不输入 shell 密码的情况下自动创建超级用户。用例是一旦用户注册他/她的模式,就会生成一个超级用户,用户使用超级用户用户名和密码登录,之后可以更改密码。

我正在使用以下命令调用 createsuperuser 命令:

call_command('createsuperuser', schema_name=self.schema_name, username='admin', email='admin@admin.com')

解决该问题的一种方法是更改​​ Django 的createsuperuser.py文件并在那里自动提供密码,但这不是可接受的途径,即为某些用例更改源代码。我可以请求一些更好的方法吗

4

1 回答 1

0

您可以为新超级用户“准备”密码并将 md5 值传递给 bash:

a=# select md5('some password'||'test');;
               md5
----------------------------------
 d5b3eb515b64edf295b2ee9062946d24
(1 row)

a=# create user test superuser password 'md5d5b3eb515b64edf295b2ee9062946d24';
CREATE ROLE

所以你可以d5b3eb515b64edf295b2ee9062946d24在 bash 中使用,将密码保存在其他地方?

于 2016-06-24T18:38:09.590 回答