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)
通常,您会在处理表单/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)
查看在视图中使用表单,了解通常如何处理表单的框架。