Если я правильно понимаю - тебе нужно вывести несколько экземпляров форм с возможностью редактирования, то возможно это поможет(если вопрос актуален еще:)):
# forms.py
class EditThumbsForm(forms.ModelForm):
class Meta:
model = Thumb
fields = ('src', )
src = forms.CharField()
EditThumbsFormSet = forms.inlineformset_factory(Video, Thumb, form=EditThumbsForm, extra=0)
class EditVideosForm(forms.ModelForm):
class Meta:
model = Video
fields = ('id', 'video_id', 'title', )
id = forms.IntegerField()
video_id = forms.IntegerField()
title = forms.CharField()
class EditVideosModelFormSet(BaseModelFormSet):
def add_fields(self, form, index):
super(__class__, self).add_fields(form, index)
form.thumb_formset = EditThumbsFormSet(
instance=form.instance,
data=form.is_bound and form.data or None,
files=form.is_bound and form.files or None,
prefix='thumb-%s-%s' % (
form.prefix,
EditThumbsFormSet.get_default_prefix()
)
)
EditVideosFormSet = forms.modelformset_factory(Video, EditVideosForm, formset=EditVideosModelFormSet, extra=0)
Во вьюхе так:
class EditVideosView(View):
template_name = 'admin/edit_videos.html'
def get(self, request):
instance = Video.objects.all()
formset = EditVideosFormSet(queryset=instance)
return render(request, self.template_name, context={'formset': formset})
А в шаблоне примерно так:
{% for form in formset %}
<li>
{{ form }}
{% if form.thumb_formset %}
{{ form.thumb_formset.management_form }}
<ul>
{% for thumb in form.thumb_formset %}
<li>
{{ thumb.src }}
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
Если кратко то необходимо вначале создать формсет с основной модели при помощи modelformset_factory(), а потом уже добавлять связанные таблицы к основной при помощи inlineformset_factory()