Встроенные формы Джанго - PullRequest
2 голосов
/ 12 июня 2011

Я пытаюсь создать записи с использованием встроенного FormSet, в то же время создавая запись с обычной формой, первичный ключ которой равен внешний ключ для встроенного FormSet, все на той же HTML-странице.

Имеет смысл? Вот что я имею в виду: предположим, у меня есть две следующие модели (очевидно, не настоящий код, но вы поняли):

Class mainModel
    Primary Key (custom pk I create)
    field1
    field2

Class inlineFormModel
    autoPK
    field1 = ForeignKey(mainModel)
    field2

Теперь я хочу создать одну HTML-страницу для пользователя, чтобы он мог создать экземпляр mainModel одновременно с созданием количества inlineFormModel экземпляров. mainModel будет нормальной формой, тогда как inlineFormModel будет использовать inlineFormsets. Проблема заключается в том, что когда я сохраняю все формы, нет чужой клавиши для ссылки на встроенные записи formSet, так как модель, на которую она ссылается, все еще создается (все сохраняется в том же виде). Имеет ли это смысл?

Как мне создать новый экземпляр mainModel с несколькими экземплярами secondModel и сохранить весь пакет с одной и той же функцией просмотра?

Спасибо!

1 Ответ

3 голосов
/ 12 июня 2011

Это распространенный сценарий, я не знаю, почему не рассматривается в документах:

    initial_form = mainModelForm(request.POST)
    if initial_form.is_valid():
        form= initial_form.save(commit=False)
        my_formset = inline_formset(request.POST,instance=form)
        if my_formset.is_valid():
           form.save()
           my_formset.save()
.......  .........
# return codes here
...