自定义模型属性的属性错误

时间:2012-12-06 17:39:25

标签: django

为了检查字段是否已更改,我向模型添加了一个属性,如here所述:

class Person(models.Model):
  name = models.CharField()

  __original_name = None

  def __init__(self, *args, **kwargs):
    super(Person, self).__init__(*args, **kwargs)
    self.__original_name = self.name

  def save(self, force_insert=False, force_update=False, *args, **kwargs):
    if self.name != self.__original_name:
      # name changed - do something here

    super(Person, self).save(force_insert, force_update, *args, **kwargs)
    self.__original_name = self.name

我已经有了这个模型的实例(没有__original_name属性),当我想修改并保存一个时,我得到了

'Person' object has no attribute '__original_name'

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

可以使用self._Person__original_name访问该属性。