民间,
我需要实现一个根据变量可能略有不同的表单。我的类ModelForms的子类看起来像这样
class ConstantVwModelForm(forms.ModelForm):
#couple attributes
def __init__(self, hasData, *args, **kwargs):
class Meta:
fields = ('xx', 'yy' ..)
我正在寻找从内部hasData
访问变量class Meta
的最佳方式,它就像
class ConstantVwModelForm(forms.ModelForm):
#couple attributes
def __init__(self, hasData, *args, **kwargs):
class Meta:
if hasData:
fields = ('xx', 'yy', ..)
else:
fields = ('hh', ..)
非常感谢任何帮助
答案 0 :(得分:2)
你不应该这样做而且没有办法实现这一目标。您可以在__init__
函数中动态删除字段:
class ConstantVwModelForm(forms.ModelForm):
#couple attributes
def __init__(self, hasData, *args, **kwargs):
if hasData:
del self.fields['hh']
else:
del self.fields['xx']
del self.fields['yy']
class Meta:
model = ConstantVwModel