Django Meta Class 访问外部属性
Django Meta Class Access Outer Attribute
各位,
我需要实现一个可能会因变量而略有不同的表单。我的 class subclasses ModelForms 看起来像这样
class ConstantVwModelForm(forms.ModelForm):
#couple attributes
def __init__(self, hasData, *args, **kwargs):
class Meta:
fields = ('xx', 'yy' ..)
我正在寻找从内部 class Meta
访问变量 hasData
的最佳方法,就像
class ConstantVwModelForm(forms.ModelForm):
#couple attributes
def __init__(self, hasData, *args, **kwargs):
class Meta:
if hasData:
fields = ('xx', 'yy', ..)
else:
fields = ('hh', ..)
非常感谢任何帮助
你不应该那样做,也没有办法做到这一点。您可以在 __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
各位,
我需要实现一个可能会因变量而略有不同的表单。我的 class subclasses ModelForms 看起来像这样
class ConstantVwModelForm(forms.ModelForm):
#couple attributes
def __init__(self, hasData, *args, **kwargs):
class Meta:
fields = ('xx', 'yy' ..)
我正在寻找从内部 class Meta
访问变量 hasData
的最佳方法,就像
class ConstantVwModelForm(forms.ModelForm):
#couple attributes
def __init__(self, hasData, *args, **kwargs):
class Meta:
if hasData:
fields = ('xx', 'yy', ..)
else:
fields = ('hh', ..)
非常感谢任何帮助
你不应该那样做,也没有办法做到这一点。您可以在 __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