alerion В админке inline так сделаны, можете посмотреть код там. Рецептов нет, есть примеры кода, но врядли там что-то будет понятно. Проще с нуля написать. Используйте inline_formset.
К сожалению с inline formset не выйдет, просят что на странице редактирования клиента была возможность добавлять новые поля для телефонов, удалять, и редактировать все номера, привязанные к клиенту, без лишних переходов по страничкам.
Начал экспериментировать, вот что вышло
colichestvo_telefonov = 1
Dop_telefoniFormSet = formset_factory(DopTelefonForm, extra=colichestvo_telefonov)
formset = Dop_telefoniFormSet()
if request.method == 'POST':
form_client = ClientAddForm(request.POST)
button = request.POST.get('button')
add_telefon = request.POST.get('add_telefon')
if add_telefon == u'добавить телефон':
colichestvo_telefonov = colichestvo_telefonov + 1
Dop_telefoniFormSet = formset_factory(DopTelefonForm, extra=colichestvo_telefonov)
formset = Dop_telefoniFormSet()
return render_to_response('admin/clients/client_add.html', {'form_client': form_client, 'formset': formset}, RequestContext(request, {}))
проблемы уже на этапе добавления новых форм на страничку, т.к метод обрабатывается каждый раз полностью, количество полей не превышает 2. Подскажите, стоит ли разбираться дальше, или я сильно извращаюсь?