首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用模型格式集的模板格式集字段中的残差值

使用模型格式集的模板格式集字段中的残差值
EN

Stack Overflow用户
提问于 2015-04-28 20:16:20
回答 1查看 55关注 0票数 0

我在一个名为modelformset_factory的视图函数中使用了一个名为selection的对象。每一项都会保存。但在此之后,页面将加载以前的项目。这种未被怀疑的行为。

我错过了什么?是不是和验证有关?

下面是汇总后的代码:

代码语言:javascript
复制
from django.forms.models import modelformset_factory

def spectacle(request, id_spectacle=0):

selections_formset = modelformset_factory(Selection, fields=('nom',), extra=1)
if request.method == 'POST':
    formset = selections_formset(request.POST, request.FILES)
    if formset.is_valid():
        for selection_form in formset:
            selection_from_formset = selection_form.save(commit=False)
            if selection_from_formset.nom != "" and selection_from_formset.nom is not None :
                selection_from_formset.save()
        message = 'success'
        for fs in formset:
            print fs.cleaned_data
    else:
        message = 'fail'
    return render(request, 'create_spectacle.html',
                  {"formset": equipes_formset
                   })
else:
    return render(request, 'create_spectacle.html',
                      {"formset": equipes_formset
                       })


<div id="my_form">
<form action="{% url 'create_spectacle' %}" method="post">
{% csrf_token %}
{{ formset.management_form }}
<div id="formsetZone">
    {% for form in formset %}
        <div class="nformset_form">
            <h3>Equipe</h3>
            {{ form.as_p }}
        </div>
    {% endfor %}
</div>
<input type="submit"/>
</form>

EN

回答 1

Stack Overflow用户

发布于 2015-04-29 05:50:20

您正在生成包含POST数据的表单(以保存它)。然后使用相同的POST数据呈现相同的表单集。这对于显示错误很有用,但在成功的情况下,这不是您想要的

标准模式是保存表单/表单集,(然后假定没有错误)重定向。在您的例子中,重定向到表单的GET版本。

在第一个"else“之前添加如下内容

代码语言:javascript
复制
        return HttpResponseRedirect("add the url to your view here")      

然后,它将运行相同的代码,但没有POST数据。或者,向成功页面添加不同的url。

下面是文档中的示例(针对单个表单,但原理相同):https://docs.djangoproject.com/en/1.8/topics/forms/#the-view

你漏掉了这行:

代码语言:javascript
复制
        return HttpResponseRedirect('/thanks/')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29919247

复制
相关文章

相似问题

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