2011-01-26 193 views
8

我无法用我创建的任何超级用户登录到Django管理员。尝试创建新的超级用户,更改密码等 - 没有错误消息的任何这些进程,但仍然无法登录。无法登录到Django管理员

我不确定它是否相关,但我也不能运行django- admin.py命令。以下是我迄今所做的:

$ django-admin.py validate 
Error: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 
$ export DJANGO_SETTINGS_MODULE=mysite.settings 
$ django-admin.py validate 
Error: Could not import settings 'mysite.settings' (Is it on sys.path? Does it have syntax errors?): No module named mysite.settings 

sys.path中显示[ '/用户/ joerobinson /网站/ Django的/ mysite的' ......(其他的路径的东西)

有我需要做其他事情来注册mysite模块?

python manage.py runserver正常工作。

结论
有关登录到Django管理的问题,我没有列入我的AUTHENTICATION_BACKENDS django.contrib.auth.backends.ModelBackend - 加入这让我登录到管理。

我还在研究django-admin.py配置问题(它似乎没有关系),并将在单独的问题中重新打开它。

+0

用户必须是员工才能登录到管理员。为这些用户设置is_staff = True。 – Evgeny 2011-01-26 18:05:25

+0

is_staff被适当设置...同样的问题。 – Joe 2011-01-26 18:16:31

+0

`django-admin.py`不适用于运行项目特定的命令,比如`validate`。为此使用`manage.py`。 – 2011-01-26 18:36:39

回答

7

那么,回答你的一个问题,mysite的父文件夹是需要在python路径上。将mysite本身添加到您的Python路径中将会暴露mysite的内容,而不是将mysite模块的内容暴露给python。

至于runserver工作/密码不工作,我不知道。你有没有定制任何认证?

您可以启动shell并尝试使用您的超级用户进行身份验证吗? http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.authenticate

您在评论中说“is_staff设置得适当......同样的问题。” - 这是否意味着您可以使用第一个超级用户登录以设置is_staff

5

我遇到了类似的问题,但是,即使在删除数据库并从头开始创建数据库后,我仍无法在管理界面上登录。问题是由一个真正愚蠢的错误造成的。

请勿意外运行python manage.py testserver。确保你使用python manage.py runserver

7

在我的情况下,我有“SESSION_COOKIE_SECURE = True”,因为我在尝试SSL配置。只是评论这条线的工作。