Django: добавление строк встроенного набора форм без JavaScript - PullRequest
4 голосов
/ 15 марта 2010

Этот пост относится к этому: Добавление строки в inlines динамически в админке 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 к данным поста.

1 Ответ

5 голосов
/ 15 марта 2010

Понял.

Иногда это самое простое решение. Просто сделайте копию данных 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')

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...