簡體   English   中英

Django中的成功消息

[英]Success message in Django

在我的django應用程序中,我正在接受表單輸入。表單被驗證后,我將在Django Message Framework的幫助下顯示成功消息。

當前狀態

當我將表單重定向到相同的url(表單本身的url)后,我能夠在模板中顯示成功消息

我的views.py

if form.is_valid():
    form_data = form.save()

    messages.success(request, 'Submited Successfully')
    return redirect('form-url')

我想要的是

提交表單后,我想在同一頁面上顯示成功消息( form-url ),然后我要重定向到新的url list-of-submitted-forms

為此,我對自己的views.py做了類似的事情

 if form.is_valid():
        form_data = form.save()

        messages.success(request, 'Submited Successfully')
        return redirect('list-of-submitted-forms')

我面臨的問題

我正在重定向到一個新form-url但是在form-url頁面上沒有收到成功消息。同樣,當我轉到form-url頁面時(通過單擊重定向到該URL的按鈕),也會顯示'Submited Successfully'提交'Submited Successfully'消息

我的HTML / JS

<script>
    {% if messages %}
        {% for message in messages %}
                    {% if message.tags == "success" %}
                         swal({text:"{{ message }}",icon: "success",timer: "4000",buttons: false})  
                    {% endif %}
            {% endfor %}

    {% endif %}

我遇到了同樣的問題,這就是我所做的

代替從控制器重定向到另一個頁面,首先添加查詢參數?redirect ='/ newpage'。 並重定向到相同的上一頁。

來自JavaScript的捕獲此查詢參數,並在幾秒鍾的延遲后運行widow.location ='/ newpage'

有很多方法可以完成您想做的事情,我為您展示了一種使用JsonResponse

意見

from django.http import JsonRespon   
from django.core.urlresolvers import reverse 

if form.is_valid():
    form_data = form.save()

    response = {'msg':'Submited Successfully',
                'url':reverse('list-of-submitted-forms'),
                'created':True}
    return JsonResponse(response)

js

$("#your_form").submit(function(){
    var formData = new FormData($(this)[0]);

    $.ajax({
        url:"URL",
        type:'POST',
        data:formData,
        processData: false,
        contentType: false, 
        success: function(data){
            if(data.created){
                alert(data.msg); // handle the message , till the user click ok, and redirect to data.url
                window.location.href = data.url;
            }
            else{
                $("your_form").html($("your_form",data));
            }
        },
        error:function(){
            alert("error");
        }
    });
    return false;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM