Django管理员DoesNotExist在/管理员/
我有Django管理员的一些问题。Django管理员DoesNotExist在/管理员/
执行syncdb后,结果是:
Creating tables ...
Installing custom SQL ...
Installing indexes ...
No fixtures found.
这是什么意思?
无论如何,当我访问的网站管理面板http://www.example.com/admin/,我收到此消息:
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)),
)
如果您只运行一个站点,您并不需要sites
框架项目,所以最简单的解决将是从INSTALLED_APPS
删除以下项目的错误应该消失:
'django.contrib.sites'
您还可以重新创建壳缺少的站点对象。运行python manage.py壳,然后:
from django.contrib.sites.models import Site
Site.objects.create(pk=1, domain='www.example.com', name='example.com')
雅去除''django.contrib.sites''应该工作 – 2012-03-16 13:22:41
感谢您的努力Mr-Ramandeep Singh – 2012-03-16 14:30:55
随时.... !!!! – 2012-03-16 20:11:29
由刚刚解决了该问题的另一种方式:
我使用PostgreSQL和Django的1.45 ... 因为我删除了www.example.com站点和添加了一个新的www.xxx.com网站它被添加为ID = 2 因为PostgreSQL不会返回到身份证号码中,并且登录和注销Django网站不知何故绑定到您的数据库中的ID = 1网站...
我去了我的PostgreSQL数据库和改变www.xxx.com的ID为1,然后我能看到的登录和注销再次网站:)
btw。 [是的,你只可以从你的settings.py删除django.contrib.sites如果你不需要它^^(但我没有试过这一个在我的情况下,与身份证号码的问题)
希望它可以为更多的用户使用! ;)
如果是这样的话,至少在您的settings.py文件中更改SITE_ID而不是手动编辑数据库。 – Atrus 2013-03-05 15:33:04
同样的问题也突然来找我,你知道有很多是解决方案。但是,这个突发问题的原因是什么?
在深入挖掘后,我发现原因是,我们忽略了第一执行syncdb行动的一个步骤。
当你有你的第一个执行syncdb,Django会要求您创建一个默认的帐户,如果你在这个互动节目不输入,该站点对象不会被自动创建。
所以要小心这个。我使用的是django 1.3.1,不知道最新版本是否已经解决了这个问题。
检查窗口的任务管理器,并确保有正在运行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”作为默认使用的活动域名。 在代码:
>>> 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
改变
SITE_ID = 2
要小心在Django的网站应用当前域ID。
只需在'urls.py'文件中使用'from django.conf.urls.defaults import *'和'from django.conf import settings'并检查 – 2012-03-16 12:19:33
感谢Harshith JV但是不会改变任何东西 – 2012-03-16 12:27:15
你可以看到syncdb的结果不包含为管理员创建表! – 2012-03-16 12:28:52