Django:总是从损坏的模型中查询新的 objects returns IndexError
Django: querying new objects from corrupted model always returns IndexError
我的一个模特行为异常。如果有任何 objects,并且我尝试以任何方式访问它们(包括在管理界面或 shell 中),即使它们刚刚创建,我也会收到 IndexError.
下面是 shell 中的示例命令:
>Path.objects.all().delete()
>Path.objects.all()
[]
>路径=路径(标题="test")
>path.save()
>路径
repr(xxxx.models.Path at 0x7f1601f79910>) 失败: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
我之前一直在使用保存覆盖,但删除了它。
它清楚地表明返回错误的行是:
return nodes[0].title + " - " + nodes[len(nodes)-1].title
不要直接索引节点。尝试确定节点中是否有任何元素的代码与此类似:
nodes[0].title if nodes else None
我的一个模特行为异常。如果有任何 objects,并且我尝试以任何方式访问它们(包括在管理界面或 shell 中),即使它们刚刚创建,我也会收到 IndexError.
下面是 shell 中的示例命令:
>Path.objects.all().delete()
>Path.objects.all()
[]
>路径=路径(标题="test")
>path.save()
>路径
repr(xxxx.models.Path at 0x7f1601f79910>) 失败: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
我之前一直在使用保存覆盖,但删除了它。
它清楚地表明返回错误的行是:
return nodes[0].title + " - " + nodes[len(nodes)-1].title
不要直接索引节点。尝试确定节点中是否有任何元素的代码与此类似:
nodes[0].title if nodes else None