为什么在成功提交表单后调用views.py中的方法并不能清除表单?

时间:2018-01-31 06:08:20

标签: python django django-forms django-views

Views.py

def form_name_view(request):
    form = FormName()

    if request.method == "POST":
        form = FormName(request.POST)

        if form.is_valid():
            form.save(commit=True)
            return HttpResponseRedirect('/') # return index(request) 
        else:
            print('INVALID FORM INPUTS')

    return render(request, 'first_app/form_page.html', {'form': form})

当我使用HttpResponseRedirect返回我的索引页面时,一切正常,但关注的是如果我使用调用索引方法而不是HttpResponseRedirect,那么行为有点疯狂:

  1. 如果我点击刷新后到达索引页面,则会出现警告:
  2.   

    您要查找的页面使用了您输入的信息。   返回该页面可能会导致您采取任何操作   重复。你想继续吗?

    1. 如果我想回到同一个表单页面,请再次调用相同的方法,如
    2.   

      返回form_name_view(请求)

      新表单已填充先前插入的数据,表单上有消息

        

      此主题名称的主题已存在。

      问题是原因是什么,调用方法结果是这样的?

1 个答案:

答案 0 :(得分:1)

def form_name_view(request):

    if request.method == "POST":
        form = FormName(request.POST)

        if form.is_valid():
            form.save(commit=True)
            return HttpResponseRedirect('/') # return index(request) 
        else:
            print('INVALID FORM INPUTS')
    else:
        form = FormName()
        return render(request, 'first_app/form_page.html', {'form': form})

使用此