Не совсем, но вам не нужно повторяться.
Вы можете определить базовую форму, содержащую все поля, которые вы всегда используете, и наследовать от нее, чтобы добавить поля
class MyPersonBaseForm( forms.Form):
surname = forms.CharField( max_length=100)
forenames = ...
age = ...
company = ...
...
class MyFooPersonForm( MyPersonBaseForm):
foo =
и MyFooPersonForm
имеют все поля MyPersonForm
плюс foo
Вы также можете удалить поля из подкласса формы, используя метод __init__
, согласно этой записи (соответствующий ответ Гарнерта вставлен ниже)
class LoginFormWithoutNickname(LoginForm):
def __init__(self, *args, **kwargs):
super(LoginFormWithoutNickname, self).__init__(*args, **kwargs)
self.fields.pop('nickname')