2015-04-29 11 views
0

Это может показаться глупым, но у меня есть model_formset для одной модели в моих представлениях, которая передается в мой шаблон. В моем шаблоне я помещаю formset внутри цикла:Django: сохранить один и тот же набор форм несколько раз

<form action="generate/" method="post"> 
    {% csrf_token %} 
    {{ formset.management_form }} 
    {% for count in formset_count %} 
     <p id="{{ count }}">{{ formset }}</p> 
    {% endfor %} 
    <div class="submitbutton" style="text-align: center;"> 
     <input type="submit" value="Submit"> 
    </div> 
</form> 

formset_count только диапазон от 1 до 5. У меня есть JavaScript, который автоматически вводит необходимые значения в formset и каждый formset немного отличается. Я хотел бы отправить и сохранить все 5 форм одновременно, нажав кнопку отправки один раз.

В моих порождающих взглядах у меня есть нормальный:

f = MyFormSet(request.POST) 
if f.is_valid(): 
    f.save() 
    return HttpResponse("Saved") 
else: 
    return HttpResponse(f.errors) 

Это экономит только последний formset в цикле.

Можно ли сохранить все 5 форм (один и тот же набор форм с разными значениями) сразу с помощью modelformset_factory?

ответ

0

Я думаю, что ваш шаблон нуждается в небольшой работе. Похоже, вы всего лишь 5 раз обрабатываете весь набор форм, с <p id="{{ count }}">{{ formset }}</p>. Вы также можете использовать Django's built-inforloop.counter, чтобы получить последовательную нумерацию.

<form action="generate/" method="post"> 
    {% csrf_token %} 
    {{ formset.management_form }} 
    {% for form in formset %} 
     <p id="{{forloop.counter}}">{{ form }}</p> 
    {% endfor %} 
    <div class="submitbutton" style="text-align: center;"> 
     <input type="submit" value="Submit"> 
    </div> 
</form> 

Ваше мнение код должен быть хорошо, as per the docs.

+0

Я действительно пытаюсь сделать весь набор форм 5 раз :). Мой javascript гарантирует, что каждая форма в каждом из 5 наборов форм будет выполнена правильно, используя элемент id = "{{count}}". Поэтому каждая из нескольких форм в нескольких наборах форм должна быть сохранена при отправке. – wernerfeuer

+0

В этом случае я не думаю, что Django может различать 5 форм, и, следовательно, только последний будет сохранен. Почему бы вместо этого не передать 5 разных форм в ваш шаблон? –

Смежные вопросы