【发布时间】:2009-12-21 14:38:56
【问题描述】:
我想更改从基类继承的模型字段的属性。我在下面尝试这个的方式似乎没有任何效果。有任何想法吗?
def __init__(self, *args, **kwargs):
super(SomeModel, self).__init__(*args, **kwargs)
f = self._meta.get_field('some_field')
f.blank = True
f.help_text = 'This is optional'
【问题讨论】:
-
你为什么不直接覆盖该字段?为什么要这么做?
-
我认为重新定义字段会引发 django.core.exceptions.FieldError? (本地字段 foo ... 与基类中类似名称的字段冲突)我错过了什么吗?
-
来自手册:“如果您覆盖任何祖先模型中的任何模型字段,Django 将引发 FieldError 异常。” docs.djangoproject.com/en/dev/topics/db/models
-
听起来你是从一个具体的models.Model类继承而不是抽象基类,对吗?
-
不,我有自己的基类 AbstractArticle,它的子类应该处理一些不同的字段。
标签: python django django-models