【问题标题】:Django form requires resubmissionDjango 表单需要重新提交
【发布时间】:2020-02-06 11:51:39
【问题描述】:

我在 Django 中有一个简单的表单,在我的模板中,我想为我保存表单的整个查询集显示每个单独的对象。我得到的错误是我的表单似乎没有在第一次尝试时提交。只有当我单击提交按钮、手动刷新页面然后“确认表单重新提交”时,我才能看到我更新的查询集对象显示在模板中。

我在视图中保存这样的表单:

 exercise_name = ExerciseName.objects.all()

 if request.method == 'POST':
      form = ExerciseNameForm(request.POST)
      if form.is_valid():
         form.save(commit=True)
      else:
         form = ExerciseNameForm()

并通过以下上下文将查询集传递给模板:

{ 'exercise_name': exercise_name }

并像这样迭代它

{% for exercise_title in exercise_name %}
  #content displaying each iteration 
{% endfor %}

用我的表单来更新它:

<div>
    <form method = "POST">{% csrf_token %}
        {{form.as_p}}
        <button type="submit" class="save btn btn-default">Save</button>
    </form>
</div>

我不知道为什么它让我刷新页面并再次重新提交表单以便在提交表单后查看更新的查询集?

【问题讨论】:

    标签: python html django django-forms django-templates


    【解决方案1】:

    你应该这样做:

    if request.method == 'POST':
        form = ExerciseNameForm(request.POST)
        if form.is_valid():
            form.save(commit=True)
            return HttpResponse("data submitted successfully") 
        else:
            return render(request, "your_template.html", {'form':form})
    else: 
        form = ExerciseNameForm()
        return render(request, "your_template.html", {'form':form})
    

    【讨论】:

      猜你喜欢
      • 2011-02-16
      • 1970-01-01
      • 2020-07-29
      • 2011-08-14
      • 2019-03-14
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多