2015-01-03 2 views
-1

제 모델 중 하나가 이상하게 작동합니다. 어떤 객체가 있고 방금 작성된 경우라도 관리 인터페이스 나 쉘을 포함하여 어떤 방식 으로든 액세스하려고하면 IndexError가 발생합니다. .Django : 손상된 모델에서 새 객체를 쿼리하면 항상 IndexError가 반환됩니다.

다음의 예는 쉘 명령 :

> Path.objects.all는() (삭제)

> Path.objects.all()를

[]

> 경로 = 경로 (제목 = "테스트")

> path.save()

> 경로

에 repr (0x7f1601f79910에서 xxxx.models.Path는>) 실패 : IndexError : 목록 지수 범위를 벗어

나는 이것을 알고있다> 어떤 일이 일어나고 있는지 파악하기에는 정보가 충분하지 않지만 관련성에 대해 확신 할 수 없으므로 누구나 이와 같은 내용을 본 적이 있다면 내가 포함해야하는 다른 정보를 알려주십시오.

그냥 경우에, 여기에 모델 :

class Path(models.Model): 

    title = models.CharField(max_length=200, blank=True, null=True) 
    nodes = models.ManyToManyField(Node, related_name="nodes",through='PathNodeRelationship') 

    def __unicode__(self): 
    nodes = self.nodes.all() 
    return nodes[0].title + " - " + nodes[len(nodes)-1].title 

나는 이전에 우선 저장 방법과 일하고 있었다, 그러나 그것을 삭제.

답변

2

그것은 명확하게 오류를 반환 라인이 있음을 보여줍니다

return nodes[0].title + " - " + nodes[len(nodes)-1].title 

직접하지 인덱스 노드를 수행합니다. 노드에 다음과 비슷한 코드가있는 요소가 있는지 확인하십시오.

nodes[0].title if nodes else None 
+0

오 마이 니스 무엇이 실수인지. 나는 그것이 그 구원자와 관련이 있다고 생각했습니다. – user3234309

관련 문제