Удаление переменной суперклассов - PullRequest
0 голосов
/ 24 июля 2011

У меня есть этот класс, который мне нужно унаследовать.

class AuthenticationForm(forms.Form):
    username = forms.CharField(label=_("Username"), max_length=30)
    password = forms.CharField(label=_("Password"), widget=forms.PasswordInput)

    def __init__(self, request=None, *args, **kwargs):
        super(AuthenticationForm, self).__init__(*args, **kwargs)

Скажите, пожалуйста, как я мог унаследовать это и удалить переменную username из суперкласса?

class LoginForm(AuthenticationForm):
    email = forms.EmailField(
        required=True, label=_("Email")
    )

    def __init__(self, request, *args, **kwargs):
        #del super(LoginForm, self).username
        super(LoginForm, self).__init__(
            request, *args, **kwargs
        )

Спасибо

1 Ответ

3 голосов
/ 24 июля 2011

Так как это Django, вы можете просто удалить его из fields dict:

class LoginForm(…):
    def __init__(…):
        super(LoginForm, self).__init__(…)
        self.fields.pop('username')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...