更改继承字段的属性

时间:2009-12-21 14:38:56

标签: python django django-models

我想改变从基类继承的模型字段的属性。我在下面尝试这种方式似乎没有任何影响。有任何想法吗?

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'

2 个答案:

答案 0 :(得分:3)

所以..你需要更改blank和help_text属性..我假设你想要这个功能,所以help_text显示在表单中,表单不会引发“此字段是必需的”

所以在表格中这样做:

class MyForm(ModelForm):
   class Meta:
      model = YourModel

   some_field = forms.CharField(required=False, help_text="Whatever you want")

答案 1 :(得分:0)

好的,这根本不可能,这就是为什么:

http://docs.djangoproject.com/en/1.1/topics/db/models/#field-name-hiding-is-not-permitted

修改 顺便说一句:不要尝试在构造函数中更改类属性,这不是明智之举。基本上您要做的是在创建行时更改表。你不会这样做,如果你只是使用SQL,你会:)?完全不同的是改变表单的方式 - 我经常动态地更改实例表单,但是我仍然只更改这一个实例,而不是要使用的整个模板(类)(例如)动态添加一个字段,这在表格的这个实例中是必需的。