首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django Formset不会存钱

django Formset不会存钱
EN

Stack Overflow用户
提问于 2015-02-22 14:19:01
回答 1查看 1.6K关注 0票数 1

我有一个Formset的下面的视图,但是当我保存表单时,它不会保存对数据库的更改?

代码语言:javascript
复制
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))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-22 14:26:04

我怀疑格式化集是无效的,但是没有显示带有错误的格式化集,而是返回重定向。您应该将重定向移到一个级别,右移到if语句中:

代码语言:javascript
复制
if formset.is_valid():
    ...
    return HttpResponseRedirect(reverse("Pipettes.views.month", args=(year, month)))

UPDATE:如果没有验证您的窗体集,但是您没有在页面上看到任何错误,那么您的窗体集呈现可能是无效的。为了测试目的,尝试使用最简单的模板:

代码语言:javascript
复制
<table>
    {{ formset }}
</table>

还请注意,使用formset.save(commit=False),删除的对象不会自动删除。请参阅文档的本章中的旁注。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28658848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档