异常类型:AttributeError异常值:对象没有属性。怎么了?

时间:2013-05-29 08:52:08

标签: python database django

我的数据库中有一个表区域

class region(models.Model):
    region_name = models.CharField(primary_key=True,max_length=50, null=False)

    @classmethod
    def __unicode__(self):
        return "hello"

当我尝试通过管理界面向DB添加几个新的区域实例时,所有现有区域的标题都是“hello”,因此我将__unicode__(self)函数更新为

@classmethod
def __unicode__(self):
    return u'%s' %(self.region_name)

但现在管理员显示

Exception Type: AttributeError
Exception Value:    
type object 'region' has no attribute 'region_name'

我检查了我的数据库,表中有region_name表示区域。谁能帮助为什么会这样呢?

1 个答案:

答案 0 :(得分:4)

您不应该使用@classmethod。只需删除@classmethod函数的__unicode__装饰器即可;用@classmethod修饰的函数的第一个参数是类本身,而不是region实例的模型实例。

This answer概述了Python中classmethodstaticmethod函数修饰符的用途和用法。