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