Django简单历史 - save_without_historical_record()对我不起作用

时间:2013-08-29 07:53:58

标签: python django

我正努力让这项工作持续2天。

我正在尝试使用Django-Simple-History保存历史记录。

情况就是这样。我有一个模特:

class Artikel(models.Model):
    treaty = models.ForeignKey(Treaty)
    parent = models.ForeignKey(Heading, null=True, blank=True)
    artikel_type = models.CharField(max_length=255, null=False, blank=False,   choices=ARTIKEL_TYPE_CHOICES)
    title = models.CharField(max_length=255, null=True, blank=True)
    history = HistoricalRecords()

这是我的save()方法

def save(self):
    self.save_without_historical_record()

我错过了一些关键的东西吗?因为我收到了这个错误:

AttributeError at /admin/treaties/artikel/329/
 skip_history_when_saving

1 个答案:

答案 0 :(得分:0)

和你一样的错误。保存的方法是递归调用的,因此我在save方法中添加了附加条件。现在我的保存方法看起来像这个

def save(self, *args, **kwargs):
    if not hasattr(self, 'skip_history_when_saving'):
        return self.save_without_historical_record(*args, **kwargs)
    return super(Artikel, self).save(*args, **kwargs)

希望这也适合你。