类型错误:'int'对象没有属性'__getitem__

0 投票
1 回答
2915 浏览
提问于 2025-04-18 04:10

我有一个Django模型叫做Partner,定义如下:

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'对象没有'__getitem__'属性

还有

float对象没有'__getitem__'属性

但这些都没有解决我的问题,或者我可能做错了什么。你知道哪里出了问题吗?

1 个回答

2

你在对一个IntegerField调用__unicode__,这样是行不通的。你需要把它转换成字符串。

试试这个:

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

撰写回答