我正在提交表单,而不是重定向到成功网址,我想在表单提交时在页面上的文本中显示“表单已提交”。有谁知道我怎么能这样做?
答案 0 :(得分:3)
在您看来:
if request.POST:
# validate form, do what you need
if form_is_valid():
message = 'Form has been submitted'
return render_to_response('path/to/template.html', {'message': message})
然后在模板中使用代码,如:
{% if message %}
<h4>{{ message }}</h4>
{% endif %}
答案 1 :(得分:0)
老实说,这不是特定于Django的问题。问题在于您是在进行正常的表单提交还是使用AJAX。
基本思想是使用AJAX和表单数据POST到表单提交端点,在Django视图中,只更新模型并返回空200响应或某些数据(XML,JSON,小HTML,无论你需要什么)。然后,AJAX调用可以在成功时填充成功消息div
,或者如果它返回非200响应则显示失败消息。
答案 2 :(得分:0)
在验证请求后,修改视图以返回带有所需文本的HttpResponse对象。请参阅下面的示例。
from django.http import HttpResponse
def contact(request):
if request.method == 'POST': # If the form has been submitted...
form = ContactForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
# ...
return HttpResponse('Form has been submitted.')