Django admin DoesNotExist at/admin/

Django admin DoesNotExist at/admin/,django,Django,我和Django管理员有一些问题 syncdb之后,结果是: Creating tables ... Installing custom SQL ... Installing indexes ... No fixtures found. 这是什么意思 无论如何,当我访问网站管理面板时,我收到以下消息: DoesNotExist at /admin/ Site matching query does not exist. setting.py包含: INSTALLED_APPS

我和Django管理员有一些问题

syncdb之后,结果是:

  Creating tables ...
  Installing custom SQL ...
  Installing indexes ...
  No fixtures found.
这是什么意思

无论如何,当我访问网站管理面板时,我收到以下消息:

DoesNotExist at /admin/
Site matching query does not exist.
setting.py包含:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
)
ur.py包含:

from django.conf.urls.defaults import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'rshd.views.home', name='home'),
    # url(r'^rshd/', include('rshd.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
     url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
     url(r'^admin/', include(admin.site.urls)),
)

如果您仅从项目中运行一个站点,则实际上不需要
站点
框架,因此最简单的修复方法是从您安装的
应用程序中删除以下项,错误应该会消失:

'django.contrib.sites'
您还可以从shell中重新创建缺少的站点对象。运行python manage.py shell,然后:

from django.contrib.sites.models import Site
Site.objects.create(pk=1, domain='www.example.com', name='example.com')

通过另一种方式解决了这个问题:

我使用PostgreSQL和Django 1.45。。。 当我删除www.example.com网站并添加一个新的www.xxx.com网站时,它被添加为ID=2 '因为PostgreSQL不会返回ID号,并且登录和注销Django站点以某种方式仅绑定到数据库中ID=1的站点

我转到我的PostgreSQL数据库,将www.xxx.com的ID更改为1,然后我可以再次看到登录和注销站点:)

顺便说一句[是的,如果您不需要django.contrib.sites,您可以从settings.py中删除它^^^(但是我没有在我的案例中尝试过这个,因为ID号问题)]


希望它能为更多的用户服务!;)

我也突然想到了同样的问题,你知道有很多解决办法。然而,这一突发问题的原因是什么

深入研究之后,我发现原因是,我们忽略了第一个syncdb操作中的一个步骤

当您拥有第一个syncdb时,django将要求您创建一个默认帐户,如果您不在这个交互式节目中输入,该站点对象将不会自动创建


所以要小心。我正在使用django 1.3.1,不知道最新版本是否解决了此问题。

检查窗口任务管理器,确保有一个进程名“python.exe”正在运行。如果有多个,请删除所有这些,然后重新启动服务器。这个解决方案对我有效

如果您正在使用
django.contrib.sites
而不通过更改
settings.py
文件中的
SITE_ID=1
值将其删除,则可以修复此错误

当我在服务器上更改域名时,我从
http://mynewdomainname.com/admin/sites/site/
手动,数据库中的旧域名记录有
id=1
,我还添加了新域名
mynewdomainname.com
,它的id是
id=2
我刚刚更改为
SITE_ID=2
,错误消失了
SITE_ID指的是您默认使用的活动域名的当前“pk”。 代码:

这发生在
settings.py
更改后

SITE_ID = 2

请注意django sites应用程序中的当前域id。

因为上面的注释非常旧,而且
syncdb
命令不存在,我不想删除
django.contrib.sites
,以下是对我有效的方法:


增量
站点ID
。我把
SITE\u ID=1
,改成
SITE\u ID=2
,一切都恢复正常了。

是的,把SITE\u it=1改成SITE\u ID=2,一切都很好

在你的设置中添加
SITE\u ID=1
。是的,顶部提到的解决方案可以是解决方案的一部分

但是,我注意到,不仅包括没有配置的
django.contrib.sites
,还包括
allauth
(pip安装django allauth)如果所述软件包配置不正确,可能会导致此问题


(据我所知,
allauth
在默认情况下没有正确配置…

如果出现错误或只是想更改站点,您可以做的另一件事很简单

  • 下载
  • 打开sqlite.db
  • 搜索django_网站
  • 将域名和显示名更改为您想要的任何名称

  • 只需在
    urls.py
    文件中使用来自django.conf.urls.defaults导入*
    和来自django.conf导入设置的
    ,然后选中感谢Harshith J.V。但不做任何更改您可以看到syncdb的结果不包含为管理员创建表!!!嘿,我也有同样的问题。然而对我来说,管理员以前工作过。当我再次查看管理页面时,它突然停止工作,直到我重新创建丢失的站点对象。你知道问题是什么吗?为什么我突然要重新创建丢失的对象?如果您使用的是
    'django.contrib.sites'
    ,请确保已在适当的地方在您的settings.py中定义了
    SITE\u ID=1
    。如果是这种情况,请至少在settings.py文件中更改SITE\u ID,而不是手动编辑数据库。
    SITE_ID = 2