Joh*_*ebs 28 python django django-models
我有一些看起来像这样的代码:
class BaseMessage(models.Model):
is_public = models.BooleanField(default=False)
# some more fields...
class Meta:
abstract = True
class Message(BaseMessage):
# some fields...
Run Code Online (Sandbox Code Playgroud)
我想覆盖is_publicMessage模型中字段的默认值,以便它True适用于该模型.
我查看了一些相关的Django文档,并在模型对象周围戳了一下,但我找不到合适的位置来做这件事.有什么建议?
mel*_*ath 31
您实际上可以这样做:
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
Run Code Online (Sandbox Code Playgroud)
我这样做了一两次.它起作用,因为Message上的字段与BaseMessage上的字段不同.但是,我怀疑它的推荐;-)这在很大程度上取决于django内部当前的工作方式,因此不能保证它会永远有效.
| 归档时间: |
|
| 查看次数: |
7996 次 |
| 最近记录: |