首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django admin DoesNotExist位于/admin/

Django admin DoesNotExist位于/admin/
EN

Stack Overflow用户
提问于 2012-03-16 20:10:05
回答 10查看 34.5K关注 0票数 29

我有一些关于Django管理的问题。

在syncdb之后,结果是:

代码语言:javascript
复制
  Creating tables ...
  Installing custom SQL ...
  Installing indexes ...
  No fixtures found.

这是什么意思?

无论如何,当我访问网站管理面板http://www.example.com/admin/时,我收到以下消息:

代码语言:javascript
复制
DoesNotExist at /admin/
Site matching query does not exist.

setting.py包含:

代码语言:javascript
复制
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包含:

代码语言:javascript
复制
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)),
)
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2012-03-16 20:36:04

如果您只从项目中运行一个站点,那么您实际上并不需要sites框架,所以最简单的修复方法是从您的INSTALLED_APPS中删除以下项,这样错误就会消失:

代码语言:javascript
复制
'django.contrib.sites'

也可以从shell重新创建缺少的Site对象。运行python manage.py shell,然后:

代码语言:javascript
复制
from django.contrib.sites.models import Site
Site.objects.create(pk=1, domain='www.example.com', name='example.com')
票数 80
EN

Stack Overflow用户

发布于 2018-01-25 17:06:34

如果您在使用django.contrib.sites 时没有使用,则可以通过更改settings.py文件中的SITE_ID = 1值来删除它,从而修复此错误。

当我在我的服务器上更改域名时发生了这种情况,我手动从http://mynewdomainname.com/admin/sites/site/中删除了旧域名,数据库中的旧域名记录有id = 1,而且我添加了新域名mynewdomainname.com,它的id是id = 2我刚刚更改为 SITE_ID = 2 ,错误gone SITE_ID指的是您默认使用的活动域名的当前"pk“。在代码中:

代码语言:javascript
复制
>>> from django.contrib.sites.models import Site
>>> # get_current() came from SiteManager class manager, 
>>> # see site-packages/django/contrib/sites/models.py
>>> current_site = Site.objects.get_current()
>>> print(current_site.pk)
2
>>> print(current_site.domain)
'http://mynewdomainname.com'

这发生在settings.py更改之后

代码语言:javascript
复制
SITE_ID = 2

在django sites app中要注意当前的域名id。

票数 11
EN

Stack Overflow用户

发布于 2013-03-15 15:22:23

同样的问题也突然出现在我的脑海中,你知道有很多解决方案。但是,这个突如其来的问题是什么原因呢?

经过深入挖掘,我发现原因是,我们忽略了第一个syncdb操作中的一个步骤。

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

所以要小心这一点。我使用的是django 1.3.1,不知道最新版本是否解决了这个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9736975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档