То, что вы пытаетесь достичь, это изменить атрибут уровня класса clean_email
, но вы хотите сделать это, используя атрибут экземпляра self.notvalidate
, так что вы делаете здесь противоречивые вещи.Самый простой способ не проверить это - проверить в clean_email и вернуть, например,
def clean_email(self):
if self.notvalidate:
return
....
Но если по какой-то загадочной причине вы не хотите, чтобы метод clean_mail существовал в классевам нужно создать класс с использованием метакласса, или более простым способом было бы вызвать функцию для создания класса, например
def createFormClass(validate):
class MyClass(object):
if validate:
def clean_email(self):
pass
return MyClass
MyClassValidated = createFormClass(True)
MyClassNotValidated = createFormClass(False)
Хотя я настоятельно рекомендую НЕ делать этого.