Переопределить поле формы родителя с опциями? - PullRequest
1 голос
/ 14 января 2012

У меня есть базовый класс, который является формой Django.Затем дочерний класс наследует от родителя, включая все поля, но мне нужно внести изменения в один из параметров поля родителя, например label, required и т. Д.

Пример:

class BaseForm(forms.Form):
    userid = forms.CharField(required=True)

class ChildForm(BaseForm):
    # I need to change the parent field option 
    userid = forms.CharField(required=False)

Есть предложения?

1 Ответ

3 голосов
/ 14 января 2012

Ты делаешь именно то, что должен делать.

Это особенно уместно в этом случае, потому что это точный шаблон для переопределения ModelForm полей.

Если вам нужно сохранить свойства, о которых вы не знаете / о которых вы не можете (или что у вас есть), вы можете переопределить метод __init__ и получить доступ к полям формы с помощью self.fields['myfield']

class ChildForm(BaseForm):
    def __init__(self, *args, **kwargs):
        super(ChildForm, self).__init__(*args, **kwargs)
        self.fields['userid'].required = False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...