3

我正在努力完成这项工作 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
4

1 回答 1

0

和你有同样的错误。保存方法是递归调用的,所以我在保存方法中添加了附加条件。现在我的保存方法看起来像这样

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)

希望这也适用于你。

于 2015-08-03T14:26:27.930 回答