Django模型 - 像Grails一样增加版本号

时间:2016-03-31 03:58:16

标签: django django-models

我们正在考虑从Grails迁移到Django ..

在Grails中,每个域类(Django中的模型)都有一个名为"版本"的整数字段。当Domain类更新时,它会增加1.

(Grails / Hibernate也使用此字段来检查用户自加载数据后是否未更新Row。但这是另一个问题。)

如何添加一个名为version的Integer字段,每次在数据库中保存/更新模型时该字段都会递增?

1 个答案:

答案 0 :(得分:1)

覆盖模型的save方法

class Increment(models.Model):
    # data you want to store

    # the version bit
    version = Models.IntegerField(default=0)

    def save(self, *args, **kwargs):
        self.version = self.version + 1
        super(Model, self).save(*args, **kwargs)