Python 如何确认已向django提交表格?

Python 如何确认已向django提交表格?,python,django,Python,Django,我正在提交一个表单,而不是重定向到一个成功的url,我只想在表单提交后在页面上的文本中显示“表单已提交”。有人知道我怎么做吗?在你看来: 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',

我正在提交一个表单,而不是重定向到一个成功的url,我只想在表单提交后在页面上的文本中显示“表单已提交”。有人知道我怎么做吗?

在你看来:

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 %}
{%if消息%}
{{message}}
{%endif%}

老实说,这不是Django特有的问题。问题在于您是在进行常规表单提交还是在使用AJAX


基本思想是使用AJAX和表单数据发布到表单提交端点,在Django视图中,只需更新模型并返回一个空的200响应或一些数据(XML、JSON、小HTML,无论您需要什么)。然后,AJAX调用可以在成功时填充一条成功消息
div
,或者在返回非200响应时显示一条失败消息。

在验证请求后,修改视图以返回一个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.')

这仍将转换页面。不确定OP想要的是什么。@PlatinumAzure因为他在发出POST请求,服务器仍然需要向浏览器发送一个页面。不,在使用AJAX时不是这样的。是的,它需要发回一些东西,但是使用一个普通的表单提交会把页面吹走。请注意,他希望文本“在提交表格时出现在页面上”的要求。AJAX是一种方法。在OP选择答案之前,我们不知道他真正想要什么:)我需要保持在同一页面上,只显示文本“表单已提交”。这种方法将我带到一个新页面。你对JavaScript做了什么?您使用的是jQuery还是其他框架?