我想改变从基类继承的模型字段的属性。我在下面尝试这种方式似乎没有任何影响。有任何想法吗?
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'
答案 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,你会:)?完全不同的是改变表单的方式 - 我经常动态地更改实例表单,但是我仍然只更改这一个实例,而不是要使用的整个模板(类)(例如)动态添加一个字段,这在表格的这个实例中是必需的。