0

フィールドが変更されたかどうかを確認するために、ここで説明するように、モデルに属性を追加しました。

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属性なしで)、1つを変更して保存したい場合、次のようになります。

'Person' object has no attribute '__original_name'

誰でも助けることができますか?

4

1 に答える 1

0

属性には、を使用してアクセスできますself._Person__original_name

于 2012-12-06T18:27:01.410 に答える