2016-07-16 19 views
0

我的项目有很多模型。在Django中存档数据就像魔术一样?

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

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

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

任何魔术替代品?

回答

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. 
相关问题