管理员登录停止运行Django

Ang*_*gie 5 django login admin logout

我正在研究我的项目一段时间,最近注意到当我尝试转到localhost/admin /时会发出错误:

DoesNotExist at /admin/

Site matching query does not exist.

Request Method:     GET
Request URL:    http://127.0.0.1:8000/admin/
Django Version:     1.3
Exception Type:     DoesNotExist
Exception Value:    

Site matching query does not exist.

Exception Location:     C:\Python27\lib\site-packages\django\db\models\query.py in get, line 349
Run Code Online (Sandbox Code Playgroud)

通常当我去那里它让我先登录然后重定向我,但现在它只是错误,除非我已经登录

我只能在我为用户创建的localhost登录功能中以管理员身份登录后进入我的管理员,然后转到该页面.此外,管理页面的注销停止工作,给出相同的错误.

我正在努力向用户模块添加一个新字段,并在发生这种情况时显示新的用户创建表单.

谁有类似的问题?或者有人知道是什么导致了这个?

Dom*_*nik 11

看看这个帖子,看起来很相关.

从上一篇文章:

由于异常说"'Site'匹配查询不存在",并且文档说了一些关于描述django_site数据库表中站点的SITE_ID,我继续看看我的(sqlite)数据库.django_site表是空的,所以我添加了一行id == 1(与settings.py中的相同)然后它工作了.

如果您不介意丢失数据,可以尝试运行'sql appname',因为该表应该是自动构建的.

  • 如果其他人碰到这个,我从网站列表中删除"example.com"后得到了同样的错误.找到源代码需要一段时间,因为我的登录会话仍处于活动状态.在INSTALLED_APPS中注释掉django.contrib.sites解决了这个问题. (4认同)

ife*_*inm 9

尝试在settings.py上的INSTALLED_APPS设置中评论或删除 "django.contrib.sites",这应该可以解决问题.

您还可以查看您的网站表:

python manage.py shell
from django.contrib.sites.models import Site
Site.objects.all()
Run Code Online (Sandbox Code Playgroud)

如果没有为localhost定义站点,您可以创建它或重新创建它:

Site.objects.create(pk=1, domain='127.0.0.1:8000', name='localhost')
Run Code Online (Sandbox Code Playgroud)

这对我有用.