Python 3.x Can';t使用Django登录到超级用户创建的命令行,但帐户已创建

Python 3.x Can';t使用Django登录到超级用户创建的命令行,但帐户已创建,python-3.x,django,docker-compose,account,superuser,Python 3.x,Django,Docker Compose,Account,Superuser,我已使用docker-compose.yml命令创建了一个无法登录的超级用户: sh -c "sleep 5 && #<snip> echo A-fj... create superuser acct... && echo DJANGO_SUPERUSER_PASSWORD=$DJANGO_SUPERUSER_PASSWORD && echo DJANGO_SUPERUSER_EMAIL=$DJANGO_SUPERUSE

我已使用docker-compose.yml命令创建了一个无法登录的超级用户:

sh -c "sleep 5 &&
#<snip>
 echo A-fj... create superuser acct... &&
 echo DJANGO_SUPERUSER_PASSWORD=$DJANGO_SUPERUSER_PASSWORD &&
 echo DJANGO_SUPERUSER_EMAIL=$DJANGO_SUPERUSER_EMAIL &&
 echo DJANGO_SUPERUSER_USERNAME=$DJANGO_SUPERUSER_USERNAME && 
 python manage.py createsuperuser --noinput --username $DJANGO_SUPERUSER_USERNAME  --email $DJANGO_SUPERUSER_EMAIL &&
 echo Z-fj... create superuser acct... done. &&
#<snip>
sleep 5 "
sh-c“睡眠5”&&
#
echo A-fj…创建超级用户帐户&&
echo DJANGO_超级用户_密码=$DJANGO_超级用户_密码&&
echo DJANGO_SUPERUSER_电子邮件=$DJANGO_SUPERUSER_电子邮件&&
echo DJANGO_SUPERUSER_USERNAME=$DJANGO_SUPERUSER_USERNAME&&
python manage.py createsuperuser--noinput--username$DJANGO\u SUPERUSER\u username--email$DJANGO\u SUPERUSER\u email&&
echo Z-fj…创建超级用户帐户…完成&&
#
睡眠5“
环境变量显示得非常完美,并且创建了一个帐户,我可以使用dBeaver在数据库中看到该帐户

当我通过“$python manage.py createsuperuser”对话框手动添加第二个用户时,我得到了一个可以登录的帐户

当我将密码从User2复制到User1时,我可以使用User2密码登录到User1,所以这似乎是一个密码

当我比较User1(orig)和User2(new)的密码时,它们看起来格式不同

我不确定,但我想这可能是问题的线索。。。 Password1较短,并且没有Password2较长的部分

密码1:

!!GSU8F8HMNOL1OBFE1EPK7OCJIXXWQQP3G0MH9TC

密码2: pbkdf2_sha256$120000$IAkHkB3ME9aB$P0HRZPKLESWK0IAFQVQ1DETR5KGBOL7WNU7QELO6KE=

我试过几种不同的密码,以防万一,但没有成功


您应该在非交互模式下设置环境变量
DJANGO\u SUPERUSER\u PASSWORD
,否则不会设置密码(在这种情况下,DJANGO PASSWORD将设置为不可用的字符串)

作为国家

在非交互模式下,用户名\字段和必填字段 (列在必填_字段中)返回到 DJANGO_SUPERUSER_环境变量,除非 它们被命令行参数覆盖。比如说 提供电子邮件字段,您可以使用DJANGO_SUPERUSER_电子邮件环境 变数


您是否正在尝试使用如下所示的行设置环境变量

...
echo DJANGO_SUPERUSER_PASSWORD=$DJANGO_SUPERUSER_PASSWORD
...
因为我认为这只是在重复那个字符串,这就是为什么超级用户是在没有密码的情况下创建的

如果在调用
createsuperuser
之前不确定是否设置了变量,请在该命令之前转储环境变量


尝试移除回声。

不,回声只是回声。
只是在那里进行故障排除

printenv DJANGO_超级用户_密码结果为空?可能我误解了。。。但是我声明环境变量是设置好的(暗示是因为我在3个echo中看到了它们…(我在.env文件中设置的))。。。它们显示在上面脚本中“python manage.py createsuperuser--noinput…”行的前面。我从“Sep 24 at 15:52”中获取了这些变量,其中user2579823列出了所需的3个env变量,“注意,没有必要输入密码,因为Django的createsuperuser脚本在非交互模式下默认从Django_SUPERUSER_password获取密码”,当然不是LoL回音只是用于反馈。