Джанго:Добавление строк встроенного набора форм без JavaScript

StackOverflow https://stackoverflow.com/questions/2448970

Вопрос

Этот пост относится к этому:Динамическое добавление строки во встроенные строки в администраторе Django

Есть ли способ добиться добавления встроенных наборов форм БЕЗ использования JavaScript?Очевидно, что потребуется обновление страницы.

Итак, если бы в форме была кнопка «Добавить»…

Я подумал, что могу сделать это так:

if request.method=='POST':
  if 'add' in request.POST:
    PrimaryFunctionFormSet = inlineformset_factory(Position,Function,extra=1)
    prims = PrimaryFunctionFormSet(request.POST)

Я думал, что это будет добавлять 1 каждый раз, а затем заполнять форму данными публикации.Однако кажется, что extra=1 не добавляет 1 к данным публикации.

Это было полезно?

Решение

Понятно.

Иногда это самое простое решение.Просто скопируйте данные request.POST и измените TOTAL-FORMS.

например..

if request.method=='POST':
  PrimaryFunctionFormSet = inlineformset_factory(Position,Function)
  if 'add' in request.POST:
    cp = request.POST.copy()
    cp['prim-TOTAL_FORMS'] = int(cp['prim-TOTAL_FORMS'])+ 1
    prims = PrimaryFunctionFormSet(cp,prefix='prim')

Затем просто выплюньте форму, как обычно.Сохраняет ваши данные, добавляет встроенный редактор.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top