2012-03-16 10 views
22

장고 관리자에게 몇 가지 문제가 있습니다.Django admin DoesNotExist at/admin/

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 포함 : 나는 웹 사이트 관리자 패널 http://www.example.com/admin/를 방문 할 때 어쨌든

, 나는이 메시지가 나타납니다

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)), 
) 
+0

'urls.py' 파일에서'django.conf.urls.defaults 가져 오기 * '와'django.conf 가져 오기 설정'을 사용하고 Harshith JV에게 –

+0

감사합니다.하지만 아무 것도 변경하지 않습니다. –

+0

볼 수 있습니다. syncdb에 대한 결과는 admin 용 테이블을 생성하지 않습니다 !!! –

답변

73

하나의 사이트 만 실행할 경우 sites 프레임 워크가 필요하지 않습니다. 가장 쉬운 수정 하는 것, 그래서이 프로젝트는 당신의 INSTALLED_APPS에서 다음과 같은 항목을 제거하고 오류가 멀리 가야한다 : 당신은 또한 쉘에서 누락 된 사이트 개체를 다시 만들 수 있습니다

'django.contrib.sites' 

. 다음 실행 파이썬 manage.py 쉘과 :

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

나중에''django.contrib.sites ''가 작동하지 않아야합니다 –

+0

여러분의 노력에 감사드립니다 Mr-Ramandeep Singh –

+0

언제나 .... !!!! –

1

그냥하여 다른 방법으로 문제를 해결 : 내가 www.example.com 사이트 제거로

내가 PostgreSQL을하고 장고 1.45 ... 를 사용하고 새 www.xxx.com 사이트가 추가되었습니다. ID = 2 으로 추가되었습니다. 왜냐하면 PostgreSQL은 ID 번호로 돌아 가지 않기 때문에 로그인 및 로그 아웃 Django-Site는 DB의 ID = 1 사이트에만 연결됩니다 ...

나는 PostgreSQL DB에 가서 www.xxx.com의 ID를 1로 변경 한 다음 다시 로그인과 로그 아웃 사이트를 볼 수있었습니다 :)

btw. [예 (ID 번호의 문제, 내 경우에는이 일을하지만 시도하지 않은) 당신이 필요하지 않은 경우 당신은 단지 ^^ 당신의 settings.py에서 django.contrib.sites을 제거 할 수 있습니다]

추가 사용자가 사용할 수 있기를 바랍니다. ;)

+0

그런 경우 최소한 db를 수동으로 편집하는 대신 settings.py 파일에서 SITE_ID를 변경하십시오. – Atrus

3

같은 문제가 또한 갑자기 나에게 왔고, 당신은 많은 해결책이 있다는 것을 알고있다. 그러나이 갑작스런 문제의 원인은 무엇입니까?

깊이 파고 들자 마자 나는 첫 번째 syncdb 동작의 단계를 무시한 것입니다.

처음 syncdb를 만들었 으면 django는 기본 계정을 만들 것을 요청할 것입니다.이 대화 형 쇼에서 입력하지 않으면 해당 사이트 개체가 자동으로 만들어지지 않습니다.

이렇게주의하십시오. 나는 장고 1.3.1을 사용하고 있는데, 최신 버전이이 문제를 해결했는지 알지 못한다.

-1

은 윈도우 작업 관리자를 확인하고 반드시 실행 한 프로세스 이름 'python.exe를이'이 있는지 확인하십시오. 많은 파일이있는 경우 모두 삭제 한 다음 서버를 다시 시작하십시오. 이 솔루션은 나를 위해 작동합니다.

0

당신이 settings.py 파일에 SITE_ID = 1 값을 변경하여 그것을 제거없이 django.contrib.sites를 사용하는 경우이 오류를 해결할 수 있습니다.

또한 내가 새 도메인 이름 mynewdomainname.com을 추가하고 id = 2 ID를했다, 내가 수동으로 http://mynewdomainname.com/admin/sites/site/에서 이전 도메인 이름을 삭제하고, 데이터베이스의 이전 도메인 기록, id = 1이 내 서버에 도메인 이름을 변경 할 때 그것은 나에게 발생되는

, 방금 ​​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 

장고 사이트 응용 프로그램에서 현재 도메인 ID에주의

을 변경했습니다.