【问题标题】:django manage.py createsuperuser not accepting usernamedjango manage.py createsuperuser 不接受用户名
【发布时间】:2015-03-21 15:29:09
【问题描述】:

我正在学习 django,并通过 djangoproject 网站上的this tutorial 工作。到目前为止一切正常,但我遇到了“python manage.py createsuperuser”命令的问题。

Username (leave blank to use 'alecgo'):

当我运行命令时,上面的提示按预期显示,但是当我输入用户名时,它会被踢回来,并出现以下错误。

Username (leave blank to use 'alecgo'): admin
Error: Enter a valid username.
Username (leave blank to use 'alecgo'): 

无论我输入什么作为用户名(或者如果我将其留空)都会发生这种情况,并且它会阻止我继续使用管理员用户。

提前感谢您的帮助。

更新/编辑:我没想过要包括这个,但我安装了 django 并且在虚拟环境中运行所有东西,而不是在我的主要 Python 库中运行,这可能是相关的。 p>

【问题讨论】:

  • 您是否看到这种情况仅发生在 admin 或任何用户名上?
  • 我一直在谷歌搜索,发现关于 ASCII 与 UTF-8 编码的解决方案有类似的问题,但我没有足够的经验知道这是否适用于这个问题,或者如何检查我的设置正确。
  • 您是否尝试将其留空并使用默认值?
  • 你有任何谷歌解决方案的链接吗?您使用的是哪个操作系统和 shell?
  • @DavidSanders 是的,它做了同样的事情。

标签: python django


【解决方案1】:

不知道为什么会发生这种情况,但您可以使用python manage.py shell 打开 django 控制台,然后执行以下操作:

from django.contrib.auth.models import User
User.objects.create_superuser(u'username', u'email', u'password')

这可能行得通。您也许还可以将上面的代码放在一个带有显式编码的 python 文件中(我们称之为myfile.py):

# -*- coding: utf-8 -*-
from django.contrib.auth.models import User

if __name__ == '__main__':
    User.objects.create_superuser(u'username', u'email', u'password')

...然后像这样从命令行执行文件:DJANGO_SETTINGS_MODULE=<path to your settings file> python -m myfile。您也可以从 django 控制台导入文件:

from myfile import *

请注意,无论是从命令行还是 django 控制台,您都将输入 myfile 而不是 myfile.py。此外,请始终确保您的字符串文字以 u 为前缀,以便 python 将它们解释为代码点字符串。

【讨论】:

    猜你喜欢
    • 2016-04-18
    • 2020-05-28
    • 1970-01-01
    • 2012-07-20
    • 2015-07-29
    • 1970-01-01
    • 2016-08-01
    • 2018-09-20
    • 1970-01-01
    相关资源
    最近更新 更多