如何在Django的model.save()中检测模型的新实例

时间:2011-01-01 14:36:16

标签: django django-models

在覆盖特定模型的save()方法时,是否可以确定它是新记录还是更新?

2 个答案:

答案 0 :(得分:53)

如果self.pkNone则为新记录。

def save(self):
    if self.pk is None:
        self.created = datetime.today()
    self.modified = datetime.today()
    super(ProjectCost, self).save()

此主题也已经讨论过here

答案 1 :(得分:3)

现代Django的首选解决方案是检查self._state.adding

不幸的是,目前尚无此文件,但是有一个未完成的任务 https://code.djangoproject.com/ticket/31502