#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)