如何确认表格已与django一起提交?

时间:2011-11-11 17:23:14

标签: python django

我正在提交表单,而不是重定向到成功网址,我想在表单提交时在页面上的文本中显示“表单已提交”。有谁知道我怎么能这样做?

3 个答案:

答案 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.')