在Django中存档数据就像魔术一样?

时间:2016-07-16 17:35:45

标签: django archive

我的项目有很多模型。

每个模型都有一个字段is_active,在生产时为True,在完成或未使用时为False。

Django有没有默认的魔术解决方案? 我有大约40-60个模型,所以理想情况下它应该是一个解决方案涵盖所有。

我发现这个答案Archiving model data in Django需要单独为每个模型进行开发工作,这将创建很多模型。

任何魔术替代品?

1 个答案:

答案 0 :(得分:1)

我会用Abstract Model Inheritance解决这个问题。

这将允许您为一个类和一组字段编写逻辑,它将适用于所有子类。

class IsActive(models.Model):
    class Meta:
        abstract = True
    is_active = models.BooleanField(default=False)

    def toggle_active(self):
        self.is_active = !self.is_active

class Child(IsActive):
    # This object now has `is_active` and `toggle_active` fields.