【发布时间】:2016-07-16 17:35:44
【问题描述】:
我的项目有很多模型。
每个模型都有一个字段 is_active ,在生产时为 True ,在完成或未使用时为 False 。
Django 是否有任何默认的魔法解决方案? 我有大约 40-60 个模型,所以理想情况下它应该是一个解决方案涵盖所有。
我发现这个答案Archiving model data in Django 需要单独为每个模型进行开发,这将创建很多模型。
任何魔法替代品?
【问题讨论】:
我的项目有很多模型。
每个模型都有一个字段 is_active ,在生产时为 True ,在完成或未使用时为 False 。
Django 是否有任何默认的魔法解决方案? 我有大约 40-60 个模型,所以理想情况下它应该是一个解决方案涵盖所有。
我发现这个答案Archiving model data in Django 需要单独为每个模型进行开发,这将创建很多模型。
任何魔法替代品?
【问题讨论】:
我会用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.
【讨论】: