我已经定义了一个基本抽象模型类,它为模型提供了一些额外的功能,如下所示:
class BaseModel(models.Model):
# ... some fields and methods
class Meta:
abstract = True
class Model1(BaseModel):
# ... some fields and methods
def required_method(self, *args, *kwargs):
# implementation
class Model2(BaseModel):
# ... some fields and methods
现在我需要确保每个派生类都定义了许多必需的方法。如果未定义其中任何一个,我需要在manage.py尝试执行时抛出异常。换句话说,BaseModel应该要求每个派生类定义一些BaseModel使用的接口,但不能自己定义。
我应该在哪里实施此检查? __init__
的{{1}}是检查此内容的好地方吗?
编辑:目的只是为了安全。如果有人或我在一段时间后,将尝试继承BaseModel
类,但忘记实现所需的方法,代码仍将运行,直到BaseModel
代码尝试执行任何缺少的方法。所以这对我来说很危险。最好防止这样的代码执行。我相信Java有这样一种叫做interfaces的机制。我想在Python中做类似的事情。