Возможно ли использовать формы в качестве полей в других формах?

#django #forms #django-forms

#django #формы #django-forms

Вопрос:

У меня есть форма, которую я создал в Django:

 class someForm(forms.Form):...
  

которое принимает переменную someVariable в своей функции инициализации:

 def __init__(self, someVariable, *args, **kwargs):
  

Могу ли я использовать someForm в качестве поля в другой форме, подобной этой?:

 class someOtherForm(forms.Form):
    sf = someForm(someVariable=self.someVariable)
...
    def __init__(self, someVariable, *args, **kwargs)
    self.someVariable = someVariable
  

Комментарии:

1. Нет, формы и поля формы не взаимозаменяемы. Вам нужно будет объяснить, какова ваша цель при попытке скопировать одну форму в другую. Если цель состоит в том, чтобы создать форму, someOtherForm которая разделяет поля с someForm , то лучший способ — использовать наследование форм (см. docs.djangoproject.com/en/dev/topics/forms/modelforms /… )

Ответ №1:

Я думаю, что лучше всего было бы расширить исходную форму следующим образом:

 def someForm(forms.Form):
    someVariable = ...
    ...
    def __init__(self, someVariable, *args, **kwargs):
        self.someVariable = someVariable

def someOtherForm(someForm):
    ...
    def __init__(self, someVariable, *args, **kwargs):
        super(SomeOtherForm, self).__init__(someVariable, *args, **kwargs)