Настройка Meta.fields не делает того, что я ожидаю

#python #django-models

#python #django-модели

Вопрос:

Вызов set_fields() здесь не делает того, что я ожидал. (Контекст кода — это модель django, но я подозреваю, что я только что допустил ошибку python).

 class FooEdit(ModelForm):
    class Meta:
        model = Foo
        # Client should call set_fields()
        # fields = ('A', 'B')

def set_fields(self, pro):
    """Set fields correctly for status."""
    if pro:
        self.Meta.fields = ('A', 'B', 'X')
    else:
        self.Meta.fields = ('A', 'Y', 'Z', 'W')
  

Ответ №1:

Вы задаете свойства класса с помощью экземпляра. Например

 class A(object):
    a=0

x=A()
print x.a #prints 0
x.a=2
x.a  #prints 2
A.a  #prints 0