2010-02-06 2 views
1

IndexError :내 django 코드에서 'list index out of range'가 나타나는 이유는 무엇입니까?

import os 
os.environ["DJANGO_SETTINGS_MODULE"] = "sphinx_test.settings" 

#from django.core.management import setup_environ 
#from sphinx_test import settings 

#setup_environ(settings) 


from django.db import models 
from djangosphinx.models import SphinxSearch,SphinxQuerySet 




class File(models.Model): 
    name = models.CharField(max_length=200) 
    tags = models.CharField(max_length=200) 

    objects = models.Manager() 
    search = SphinxQuerySet(index="test1") 


import datetime 



class Group(models.Model): 
    name = models.CharField(max_length=32) 

class Document(models.Model): 
    group  = models.ForeignKey(Group) 
    date_added = models.DateTimeField(default=datetime.datetime.now) 
    title  = models.CharField(max_length=32) 
    content  = models.TextField() 

    search  = SphinxQuerySet(File,index="test1") 

    class Meta: 
     db_table = 'documents' 

Traceback (most recent call last): 
    File "D:\zjm_code\sphinx_test\models.py", line 16, in <module> 
    class File(models.Model): 
    File "D:\Python25\Lib\site-packages\django\db\models\base.py", line 52, in __new__ 
    kwargs = {"app_label": model_module.__name__.split('.')[-2]} 
IndexError: list index out of range 

답변

3

당신이 사용할 수있는 뭔가 Meta.app_label를 설정해야합니다 범위

중리스트 인덱스이 내 장고 코드입니다.

+0

설정하는 방법은 다음과 같습니다. class 메타 : app_label = sphinx_test – zjm1126

+0

모델 클래스 내에는 yes가 있습니다. –

+0

안녕하세요, 괜찮아요, 그리고 내가 내 코드를 실행할 때 아무것도 인쇄, 내 databse (이름은 '테스트')에 무슨 일이 일어 났는지 알고 싶어요 – zjm1126

1

코드의 일부만 앱 이름을 결정하기로되어 있습니다. 섹션 here 시작 라인 45를 참조하십시오.이 앱 이름은 무엇입니까?

모델의 메타 섹션에서 app_label을 앱 이름으로 설정하면 오류를 피할 수 있습니다.

+0

응용 프로그램이 없습니다; 그것은 독립 실행 형 스크립트입니다. –

+0

감사합니다 ... 장고가 내가 추측 한 앱 이름을 찾을 수없는 이유를 설명합니다! – JAL