2010-12-07 3 views
0

내 모델의 테이블을 만들기 위해 python manage.py syncdb가 표시되지 않습니다. 꾸밈 django.db.models로python manage.py syncdb가 models.py에서 가져 오지 않습니다

[email protected] ~/project 
$ python manage.py shell 
Python 2.6.5 (r265:79063, Jun 12 2010, 17:07:01) 
[GCC 4.3.4 20090804 (release) 1] on cygwin 
Type "help", "copyright", "credits" or "license" for more information. 
(InteractiveConsole) 
>>> import models 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/home/jhayward/project/models.py", line 23, in <module> 
    class architecture(models.Model): 
    File "/usr/lib/python2.6/site-packages/django/db/models/base.py", line 48, in 
__new__ 
    kwargs = {"app_label": model_module.__name__.split('.')[-2]} 
IndexError: list index out of range 
>>> 

가져 오기 모델은 도움이되지 않습니다 예외가 내 모델을 시도 수입에 발생합니다 나는 다소 예외가 의아해하고 있기 때문에이 분명히있다. models.py는 내가 가져 오려고하는 디렉토리와 같은 디렉토리에 있습니다. 내 PYTHONPATH에 현재 디렉토리를 추가 할 때 다르게 동작하는 것 같지 않습니다.

이 오류 메시지는 어떻게 진행되고 있으며 어떻게해야합니까?

models.py의 기본 구조는 다음과 같습니다

from django.db import models 

example_choice = (
    (0, u'first choice'), 
    (1, u'second choice'), 
    ) 

[more such choices] 

class architecture(models.Model):             
    name = models.TextField(null = True, blank = True) 

[more such classes, with more fields and some interconnections but no more sophisticated syntax] 
+1

whats onlines 23 models.py? – baloo

+0

models.py –

+0

클래스 아키텍처 (models.Model) 게시 : [필 린트 당 초기 'A'를 시도했지만 동일한 오류가 발생했습니다. 클래스 정의는 내가 말할 수있는 한 보행자입니다.] – JonathanHayward

답변

3

응용 프로그램 패키지 (예 : myapp)가 있어야하며 모델이 있어야합니다 (myapp/models.py) 그런 다음 myapp.models 또는 myapp 가져 오기 모델을 가져올 수 있습니다.

django가 models 모듈을 포함하는 패키지로 appname을 찾으려고하기 때문에 오류가 발생합니다 (models 모듈에 대한 경로는 최소한 2 단계의 깊이가 있어야합니다).

게다가,이 앱은 INSTALLED_APPS 내에 선언되어야합니다

+0

"게다가, 앱은 INSTALLED_APPS 내에 선언되어야합니다": 이것이 내 문제였습니다. 고맙습니다. – JonathanHayward

1

모델은 직접적으로 프로젝트 내에서 응용 프로그램에 포함되어야한다.

관련 문제