「フォームセットをフィールドとして埋め込む」必要があるという考えがどこから来たのかわかりません。これは、フォームセットの標準的な使用法のケースのように思えます。
例(モデルについて多くの仮定を立てる):
class OfficeForm(forms.Form):
department = forms.ModelChoiceField(...
room_number = forms.IntegerField(...
class StaffForm(forms.Form):
name = forms.CharField(max_length=...
email = forms.EmailField(...
from django.forms.formsets import formset_factory
StaffFormSet = formset_factory(StaffForm)
そして、あなたの見解のために:
def add_office(request):
if request.method == 'POST':
form = OfficeForm(request.POST)
formset = StaffFormSet(request.POST)
if form.is_valid() && formset.is_valid():
# process form data
# redirect to success page
else:
form = OfficeForm()
formset = StaffFormSet()
# render the form template with `form` and `formset` in the context dict
考えられる改善:
お役に立てれば。