gpt4 book ai didi

python - 如何从抽象基类覆盖模型字段的默认值

转载 作者:IT老高 更新时间:2023-10-28 22:12:25 25 4
gpt4 key购买 nike

我有一些看起来像这样的代码:

class BaseMessage(models.Model):
is_public = models.BooleanField(default=False)
# some more fields...

class Meta:
abstract = True

class Message(BaseMessage):
# some fields...

我想覆盖 Message 模型中 is_public 字段的默认值,以便该模型为 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 内部当前的工作方式,因此不能保证它会永远工作。

关于python - 如何从抽象基类覆盖模型字段的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6377631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com