我想动态更新Meta.fields
。是否可以通过Form构造函数来完成?我尝试了以下操作,但是year
在表单生成过程中没有出现。仅显示name
和title
。
class Author(models.Model):
name = ...
title = ...
year = ...
class PartialAuthorForm(ModelForm):
class Meta:
model = Author
fields = ('name', 'title')
def __init__(self, *args, **kwargs):
self.Meta.fields += ('year',)
最佳答案
不,那行不通。甚至在您进入__init__
之前,元数据都是由元类解析的-令人惊讶。
执行此操作的方法是将字段手动添加到self.fields
:
def __init__(self, *args, **kwargs):
super(PartialAuthorForm, self).__init__(*args, **kwargs)
self.fields['year'] = forms.CharField(whatever)
关于django - 如何从表单构造函数动态更新Django Form Meta类字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3038860/