2012-02-22 1 views
3

1.1.1 Django 프로젝트를 1.3.1로 전환했습니다. urls.py에서 admin.autodiscover()를 호출하면, 예외가 진술 관리자 프레임 워크에 sites.py에서 발생 : settings.py에서Django 1.1.1에서 1.3.1로 업그레이드 할 때 admin.autodiscover()가 contenttype을 묻는 예외를 발생시킵니다.

ImproperlyConfigured at/
Put 'django.contrib.contenttypes' in your INSTALLED_APPS setting in order 
to use the admin application 

, 내가 가진 :

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', 
    # Uncomment the next line to enable admin documentation: 
    # 'django.contrib.admindocs', 
    'my.app' 
) 

것 I 확인 됨 :

  1. contenttypes 프레임 워크는 실제로 INSTALLED_APPS 설정에 있습니다.
  2. 다른 곳에서는 INSTALLED_APPS 선언을 반복하지 않았습니다.
  3. INSTALLED_APPS의 contenttypes 항목은 admin 항목 앞에 나열됩니다.
  4. django-admin.py 셸 실행 및 "django.contrib.contenttypes"가져 오기가 작동합니다.

나는 관리자의 잘못된 줄에 가면 (장고-1.3.1/장고 /있는 contrib/관리/sites.py check_dependencies에서, 라인 164), I는 다음을 참조하십시오

if not ContentType._meta.installed: 
    raise ImproperlyConfigured(...) 

하는 경우 수표에 주석을 달고 프로젝트를 실행할 수 있으며 관리자가 작동합니다. _meta.installed 속성이 모델 유형에 설정되는 방법을 잘 모르겠습니다. 그래서 다음에해야 할 일에 대한 손실이 있습니다.

동일한 Django 1.3.1 설치가 비슷한 설정 파일을 사용하는 다른 프로젝트에서도 작동한다는 점에 유의해야합니다.

힌트 또는 리소스를 제공해 주시면 감사하겠습니다. 감사!

+0

그냥, (관련이 있지만) django 1.4는 현재 베타 버전입니다. Django 1.4RC는 2 월 27 일에 출시 될 예정이며 1.4final은 3 월 5 일 출시 예정입니다 (릴리스 일정 별). 몇 주를 기다리면 하나의 큰 마이그레이션이 아닌 두 번의 업그레이드 마이그레이션에서 벗어날 수 있습니다. https://docs.djangoproject.com/en/dev/releases/1.4-beta-1/#the-django-1-4-roadmap –

+1

여기에 INSTALLED_APPS을 (를) 게시하는 것이 좋을 것입니까? –

+1

패키지가 있는지 확인 했습니까? 새 설치 위치에 있습니까? /site_packages/django/contrib/contenttypes와 같은 것입니다. – Furbeenator

답변

1

django.contrib.contenttypes에는 ContentType과 ContentTypeManager라는 두 가지 모델이 있습니다. 내 생각 엔 django.contrib.contenttypes를 INSTALLED_APPS에 추가 한 후에 manage.py syncdb을 실행하지 않았다는 것입니다.

이렇게하면 if not ContentType._meta.installed 검사를 이해할 수 있습니다. ContentType 모델을 아직 데이터베이스에서 사용할 수 없습니다.