类型错误:'int'对象没有属性'__getitem__
我有一个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__'属性
还有
但这些都没有解决我的问题,或者我可能做错了什么。你知道哪里出了问题吗?
1 个回答
2
你在对一个IntegerField
调用__unicode__
,这样是行不通的。你需要把它转换成字符串。
试试这个:
def __unicode__(self):
return str(self.identity)