我知道之前曾有人问过这个问题,但是我不明白如何应用所提供的解决方案,或者它们不起作用。我认为我的案件可能要简单得多。
我是Django的初学者,我首先关注djangogirls教程。我将Django安装在使用conda
创建的虚拟环境中。第一次尝试,我完全能够创建一个超级用户并成功登录该帐户。但是,那一次我在C:\Users\User\
中创建了该项目,并且项目组织得不太好,因为该项目中有很多文件和文件夹。
现在,我创建了第二个虚拟环境和一个新项目,该项目位于F:中,是同一驱动器的另一个分区。我做了我第一次做的所有事情,但是当我尝试登录到管理页面时,我收到一条消息,提示凭据不正确。实际上,我创建了另外两个超级用户(成功),但是总是收到相同的消息。
我还创建了第三个虚拟环境和项目(在没有OS的同一分区中),这次是使用pip,以遵循djangogirls教程中完全相同的过程。然而,完全相同的事情发生了。我想也许是,对于使用conda
创建的虚拟环境的项目,该项目必须与操作系统位于同一分区中,这就是为什么我使用相同的虚拟环境在C驱动器中创建了第三个项目的原因。总是相同的错误。
我尝试为正在创建的第一个应用程序(未组织的应用程序)创建一个新的超级用户,并且成功创建了该应用程序,并且我也能够成功登录。
从我阅读的所有答案中,数据库可能有问题,但是我不知道如何应用这些解决方案。
我正在使用Windows10。Python3.7.6和Django 3.0.3。
编辑1
我要遵循的确切步骤(及其顺序)如下:
django-admin.exe startproject myproject .
位于驱动器F的专用目录中(分区。Windows在C中)。
在该settings.py文件中,更改时区,使用STATIC_ROOT = os.path.join(BASE_DIR, 'static')
添加静态文件的路径,使用ALLOWED_HOSTS
更改ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']
的值,如本教程所指定。
我正在使用默认的sqlite3,并使用
python manage.py migrate
此后,我运行服务器,到目前为止一切看起来都很不错。
python manage.py startapp blog
按照本教程的说明。
INSTALLED_APPS
变量INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog.apps.BlogConfig',
]
为博客文章创建新模型。
将新模型添加到数据库中,如下所示:
python manage.py makemigrations blog
python manage.py migrate blog
编辑2 (忘记添加此步骤)
from django.contrib import admin
from .models import Post
admin.site.register(Post)
python manage.py createsuperuser
创建一个超级用户,成功。然后,执行完此操作后,我将无法登录。
答案 0 :(得分:0)
在名为djangogirls教程的聊天室中,我从一个名为Lowe Wilsson的用户那里得到了很多帮助,这导致了问题的解决方案。
问题很可能是,我为我创建的第一个项目运行服务器的一次,我没有正确关闭它-关闭终端窗口而不停止服务器-并且它一直在后台运行,所以每次我转到127.0.0.1:8000时,我都在与第一个项目的数据库进行交互。这解释了为什么即使我为另一个项目运行服务器时也可以使用该第一个项目的管理员凭据登录。
做
from django.contrib.auth.models import User
User.objects.all()
我可以看到所有用户都是在数据库中正确创建的。
我改为在端口8001上运行服务器,并且可以顺利登录。