我正在尝试通过继承扩展django抽象基础模型,但是django模型的行为会自动设置abstract = True
为abstract = False
抽象模型的任何子类,这令我感到困扰。
所以情况是
from django.db.models import Model
from django.db.models.base import ModelBase
Class TimeStampedModel(Model):
created_time = DateTimeField()
modified_time = DateTimeField()
class Meta:
abstract = True
ordering = ('created_time',)
get_latest_by = 'created_time'
class RecordModelMetaClass(ModelBase):
# NOT IMPLEMENTED YET
pass
class RecordModel(TimeStampedModel):
__metaclass__ = RecordModelMetaClass
recording_model = NotImplemented
recording_fields = NotImplemented
其中抽象TimeStampedModel是抽象RecordModel的基础模型。
问题是,Django的“元类ModelBase
自动RecordModel的转换abstract = True
到abstract = False
时RecordModel进口时间定义。
有什么办法可以关闭这种django的行为吗?
是的,这已记录在案:
如果孩子想扩展父母的Meta类,则可以对其进行子类化。
在您的情况下:
class RecordModel(TimeStampedModel):
class Meta(TimestampedModel.Meta):
abstract = True
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句