Django 表单在刷新时再次提交

mcd*_*mcd 2 python forms django

您好,我正在制作一个简单的表格。表单提交正常,但如果我刷新页面,它会重新提交数据。似乎表单在提交后保存数据,我假设在提交后请求方法是 post 。问题是提交后清除 Django 表单的最佳方法是什么。提交后,表单变量不应再保存值。谢谢

def testimonials(request, template_name="testimonials.html"):
reviews = Reviews.objects.all()
if request.method == 'POST':
    form = forms.ReviewsForm(data = request.POST)
    # create a new item

    if form.is_valid(): # All validation rules pass
        # Process the data in form.cleaned_data
        # ...
        if form.is_valid():
            nameIn = form.cleaned_data['name']
            reviewIn = form.cleaned_data['review']
            newReview = Reviews(name = nameIn, review = reviewIn)
            newReview.save()
            return render_to_response(template_name, locals(), context_instance=RequestContext(request))

else:
    # This the the first page load, display a blank form
    form = forms.ReviewsForm()

    return render_to_response(template_name, locals(), context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

ste*_*iot 5

通常,您会在处理表单/POST 请求后发出重定向(这是常见的 Web 开发实践,以避免您提到的重新提交问题)。因此render_to_response,您可以像这样发出a ,而不是HttpResponseRedirecta :

if form.is_valid(): 
        # Process form as desired here
        # Simple example; use reverse() to avoid hard-coding URLs
        return HttpResponseRedirect('/success/')
Run Code Online (Sandbox Code Playgroud)

查看在视图中使用表单,了解通常如何处理表单的框架。