2011-04-14 3 views
1

나는이 같은 구조 프로젝트,이 수입 무시 :syncdb는 모델

project/ 
    __init__.py 
    db/ 
     models/ 
     __init__.py 
     article.py 
     project.py 
     ontology/ 
      __init__.py 
      coded.py 

그것은 조금 더 큰,하지만 그것은 생각입니다. models.__init__.py에는 다음이 포함

from db.models.article import * 
from db.models.project import * 
from db.models.ontology.coded import * 

syncdb를 실행, 그것은 models.__init__.py 수입 모든 모델을 무시합니다. ImportError은 없으며 __init__.py에 print 문을 추가하면 syncdb를 실행하는 동안 가져 오기 모델이 행복하게 인쇄됩니다.

모델 __init__.py으로 설정하면 작동합니다.

왜 그럴까요? 가져온 모델에 대해 syncdb를 강제 적용 할 수 있습니까?

편집 : 응용 프로그램 가 INSTALLED_APPS에입니다 :

INSTALLED_APPS = (
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'amcatnavigator.navigator', 
'amcatnavigator.db', 
) 

감사합니다!

답변

3

South (syncdb) 문서에 따르면 : http://south.aeracode.org/docs/tutorial/part1.html settings.py 파일의 INSTALLED_APPS 섹션에있는 모델의 테이블 만 생성합니다. 모델이 사용되고 있지만 변경하면 모든 데이터 잃고 싶지 않는 경우 - 사용 마이그레이션 : http://south.aeracode.org/docs/tutorial/part1.html#the-first-migration

UPDATE : 내가 디자인으로 장고를 보았다 마찬가지로 지금까지 늘 다른 디렉토리 내에서 모델을 찾을 수 : http://code.djangoproject.com/ticket/14007 당신은 할 수 있습니다를 app_label 문서 : app_label

UPDATE 사용 http://docs.djangoproject.com/en/dev/ref/models/options/#app-label

+0

그게 다야! 감사! – Martijn

0

db 모듈이 설정의 INSTALLED_APPS 목록에 포함되어 있지 않은 것 같습니다. 다른 변종에 대한 정보가 충분하지 않습니다.

+0

INSTALLED_APPS에 언급 했어야합니다. 원래 게시물에 추가 된 3 .. 2 .. – Martijn

4

을 당신은 당신의 모델 '메타 내부 클래스에 app_label = 'db'를 추가해야합니다.

+0

고쳐 주셔서 고마워요! – Martijn

관련 문제