TypeError'int'对象没有属性'__getitem__'

时间:2014-04-25 02:48:18

标签: python django

我有一个Django模型合作伙伴定义如下:

class Partner(models.Model):
    name = models.CharField(max_length=500)
    description = models.CharField(max_length=5000)
    identity = models.IntegerField(primary_key=True, max_length=100)
    address = models.CharField(max_length=300)
    phone = models.IntegerField(max_length=10)

    def __unicode__(self):
        return self.identity

    def get_absolute_url(self):
        from django.core.urlresolvers import reverse
        return reverse('partner', kwargs={'partner_url': self.identity})

它已在admin.py中注册如下:

admin.site.register(Partner)

但是,在我尝试添加数据时,在管理控制台中,它会出现以下错误:

TypeError at /admin/Project/partner/add/
'int' object has no attribute '__getitem__'

我尝试了其他类似解决方案的解决方案:

TypeError: 'int' object has no attribute '__getitem__'

float object has no attribute __getitem__

但既没有解决我的问题,也没有解决错误。知道什么是错的吗?

1 个答案:

答案 0 :(得分:2)

您在__unicode__上呼叫IntegerField,这将无效。您需要转换为字符串。

尝试:

def __unicode__(self):
    return str(self.identity)