2015-02-22 3 views
0

У меня есть вид ниже для формы, но когда я сохраняю форму, он не сохраняет изменения в базе данных?django Formset не будет сохранять

def schedule(request, year, month, day): 
    EntriesFormset = modelformset_factory(Entry, extra = 1, exclude=("creator", "date"),can_delete=True) 

    if request.method == 'POST': 
     formset = EntriesFormset(request.POST) 
     if formset.is_valid(): 
     # add current user and date to each entry & save 
      entries = formset.save(commit=False) 
      for entry in entries: 
       entry.creator = request.user 
       entry.date = date(int(year), int(month), int(day)) 
       entry.save() 
     return HttpResponseRedirect(reverse("Pipettes.views.month", args=(year, month))) 

    else: 
    # display formset for existing enties and one extra form 
     formset = EntriesFormset(queryset=Entry.objects.filter(date__year=year,date__month=month, creator=request.user)) 
    return render_to_response("Scheduler.html", add_csrf(request, entries=formset, year=year, 
     month=month, day=day)) 

ответ

0

Я подозреваю, что набор форм недействителен, но вместо отображения формы с ошибками вы возвращаете перенаправление. Вы должны переместить перенаправление на один правильный уровень, в if заявление:

if formset.is_valid(): 
    ... 
    return HttpResponseRedirect(reverse("Pipettes.views.month", args=(year, month))) 

UPDATE: Если formset не подтверждено, но вы не видите каких-либо ошибок на странице, то ваш рендеринг formset может быть недействительным , Для целей тестирования пытаются использовать простейший шаблон:

<table> 
    {{ formset }} 
</table> 

Также отметим, что с formset.save(commit=False) удаленные объекты не удаляются автоматически. См. Примечание к стороне в документе this chapter.

+0

Благодарим вас за комментарий. Я переместился вправо под оператором for, но он все еще не работает. – ecw1014

+0

«Не работает» означает, что formet действителен, 'entries' не пуст, но они не сохраняются до перенаправления? – catavaran

+0

Как я могу проверить, что не так с набором форм, поскольку это недействительно? Благодаря! – ecw1014

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