django admin中保存添加的数据提示need string or buffer, int found

原因 

def __unicode__(self):
        return unicode(self.pk)

此处如果没有unicode就会报这个错误,原因就是编码错误

以为是文件开始没有加utf-8导致的,然而加上还是不对 。

见http://stackoverflow.com/questions/5345400/django-coercing-to-unicode-need-string-or-buffer-int-found

再细看:

__unicode__() 方法可以进行任何处理来返回对一个对象的字符串表示
这里是默认的,所以你不是字符串就会出错,改成str()试试

事实证明也是可以的

参考见:http://www.cnblogs.com/wenjiashe521/archive/2012/12/24/2831196.html

原文地址:https://www.cnblogs.com/wswang/p/5478002.html