我有抽象模型A
和B
一个子模型C
。
class A(models.Model):
field1 = models.CharField(max_length=24)
class Meta:
abstract = True
class B(models.Model):
field1 = models.CharField(max_length=24)
class Meta:
abstract = True
def make_A(self):
A(field1=self.field1).save()
class C(B):
pass
如果我尝试运行C.make_A()
我会收到TypeError: Abstract models cannot be instantiated
错误。所以我被迫重新编写make_A
孩子的方法。A
有没有办法编写在抽象下实例化的方法B
?
问题不在于
B
抽象,问题在于A
抽象。但是您可以创建一个“模板方法”,然后稍微修改一下C
:具有 的具体子
SubA
类。A
话虽这么说,鉴于我了解您的目标,您似乎在某种程度上复制了[readthedocs.io]正在做的事情。
django-simple-history