Ответы, которые говорят использовать __init__
, будут работать, но вы потеряете соединение с моделью (при условии, что добавляемое поле находится на модели). Вместо этого вы можете динамически создать новую форму, которая наследует существующую форму.
def my_form_factory:
class ModifiedAuthorForm(PartialAuthorForm):
class Meta(PartialAuthorForm.Meta):
fields = PartialAuthorForm.Meta.fields
if hasattr(fields, 'append'):
fields.append('year')
else:
fields = fields + ('year',)
return ModifiedAuthorForm
Конечно, если вы хотите быть устойчивым, вам, вероятно, следует проверить, что поле, которое вы добавляете, еще не находится в fields
, и вам, вероятно, также следует обработать exclude
.