我有一些看起来像这样的代码:
class BaseMessage(models.Model): is_public = models.BooleanField(default=False) # some more fields... class Meta: abstract = True class Message(BaseMessage): # some fields...
并且我想覆盖is_publicMessage模型中字段的默认值,使其True适用于该模型。
is_publicMessage
True
我已经浏览了一些相关的Django文档,并仔细查看了模型对象,但是我很难找到合适的位置进行此操作。有什么建议?
你实际上可以按照以下步骤进行操作:
class BaseMessage(models.Model): is_public = models.BooleanField(default=False) # some more fields... class Meta: abstract = True class Message(BaseMessage): # some fields... Message._meta.get_field('is_public').default = True
我已经做了一两次。之所以有效,是因为Message上的字段与BaseMessage上的字段是不同的实例。但是,我怀疑是否建议使用它;-)它在很大程度上取决于Django内部的当前工作方式,因此无法保证它将永远有效。
分享改善这个答案