Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';t使用我创建的用户登录django的管理页面_Python_Django - Fatal编程技术网

Python Can';t使用我创建的用户登录django的管理页面

Python Can';t使用我创建的用户登录django的管理页面,python,django,Python,Django,我按照django教程所说的做了,但仍然无法登录localhost:8000/admin/ 使用我创建的用户。我检查了数据库,没有用户名“admin”。 我通过以下方式创建了用户: from django.contrib.auth.models import User u = User.objects.get(username__exact='john') u.set_password('new password') u.save() 有人能帮我吗?请。我建议您再次完成整个过程,因为您显然遗漏

我按照django教程所说的做了,但仍然无法登录localhost:8000/admin/ 使用我创建的用户。我检查了数据库,没有用户名“admin”。 我通过以下方式创建了用户:

from django.contrib.auth.models import User
u = User.objects.get(username__exact='john')
u.set_password('new password')
u.save()

有人能帮我吗?请。

我建议您再次完成整个过程,因为您显然遗漏了一些内容。 从头开始。 你会看到你错过了什么

附言。 如果您的用户名为john,则用户名为admin的用户不能相同

我假设您可能忽略了从运行python manage.py syncdb,您需要执行以下三项操作才能启用管理站点。你错过了他们中的任何一个吗

  • 在INSTALLED_APPS设置中取消注释“django.contrib.admin”

  • 运行python manage.py syncdb。由于已将新应用程序添加到已安装的应用程序中,因此需要更新数据库表

  • 编辑mysite/urls.py文件并取消引用管理员的行的注释-总共有三行要取消注释


  • syncdb通常创建/更新数据库,因此从您的语句:

    我检查了数据库,没有用户名“admin”

    我知道你一定是以某种方式创建了数据库。第一次运行syncdb时,系统将要求您创建超级用户。您应该在这里插入您的凭据

    但是,如果您丢失了此部件,您可以稍后使用django外壳:

    python manage.py shell
    
    这将打开一个加载了django环境的python shell。在该shell中,创建管理员用户,如下所示:

    from django.contrib.auth.models import User
    u = User(username='admin', is_superuser=True, is_staff=True)
    u.set_password('admin')
    u.save()
    
    请注意,*is_staff*必须为true,您的新用户才能登录管理区域 和*is_superuser*也必须为true,用户才能拥有所有权限


    然后转到localhost:8000/admin/并使用新的“admin”用户登录。

    我没有错过任何一个。%%>_您能检查一下数据库中是否创建了auth_*表吗?其中应该有七个(“auth_group”是第一个),我在使用SQLlite时也遇到过这个问题(我在Django 1.6上),当提示我这样做时,我肯定是超级用户。我一直在利用你的工作。你知道为什么吗?你使用的是stock django用户模型吗?运行syncdb后,尝试检查auth_用户模型,尤其是is_staff、is_superuser列。它们设置正确吗?您是否有可能正在加载覆盖超级用户的任何装置?旁注:还有一个manage.py createsuperuser命令,您可以使用它作为替代。我想我使用的是stock django用户模型,没有加载任何装置(不知道它们是什么)。当我登录时,我可以看到原始的“超级用户”用户,他们拥有所有正确的属性(is_staff,is_superuser)。在这种情况下,我希望您能够使用“超级用户”用户登录。恐怕我不确定问题出在哪里。我想可能是我的“shell”在eclipse的控制台中,可能插入了奇怪的unicode字符?无论如何,谢谢你。