Ответ 1
Конечно, возможно - как, по-вашему, администратор это делает?
Взгляните на документацию встроенных форм.
Отредактировано после комментария. Конечно, вам нужно создать экземпляр и отобразить как родительскую форму, так и вложенный набор форм. Что-то вроде:
def edit_contact(request, contact_pk=None):
if contact_pk:
my_contact = Contact.objects.get(pk=contact_pk)
else:
my_contact = Contact()
CommunicationFormSet = inlineformset_factory(Contact, Communication)
if request.POST:
contact_form = ContactForm(request.POST, instance=my_contact)
communication_set = CommunicationFormSet(request.POST,
instance=my_contact)
if contact_form.is_valid() and communication_set.is_valid():
contact_form.save()
communication_set.save()
else:
contact_form = ContactForm(instance=my_contact)
communication_set = CommunicationFormSet(instance=my_contact)
return render_to_response('my_template.html',
{'form': contact_form, 'formset':communication_set})
и шаблон может быть таким же простым, как:
<form action="" method="POST">
{{ form.as_p }}
{{ formset }}
</form>
хотя вы, вероятно, захотите немного подробнее узнать, как вы его рендерите.