簡體   English   中英

重定向到Django中的另一個視圖

[英]Redirecting to another View in Django

我正在嘗試重定向到Django應用程序中的另一個視圖。 現在,我有一個ajax調用update_view視圖,然后從那里嘗試重定向到另一個帶有game_id的視圖,稱為gameover。

目前,我正在嘗試:

def update_view(request):
    return HttpResponseRedirect(reverse('gameover', args=(game_id,)))

但是,當我這樣做時,它不會加載該頁面,並且我嘗試過的所有其他技術都始終在URL中包含“ update_view”,這是不正確的,因為url映射使游戲結束了。

感謝您的所有幫助!

因為您是通過Ajax調用視圖,所以您需要在客戶端進行重定向,方法是傳遞回URL進行重定向,或者提前知道它。 使用該URL,您可以在JavaScript中更改位置。 我只是將您要重定向的URL作為JSON返回。 此示例假設您使用的是jQuery進行Ajax調用:

import json

def update_view(request):
    # more code
    redirect_url = reverse('gameover', args=(game_id,), kwargs={})
    return HttpResponse(json.dumps({'redirect_url': redirect_url},
        ensure_ascii=False), mimetype='application/json')

(function($) {

    $(function() {
        $.ajax({
            type: 'post',
            url: 'path/to/your/view/',
            dataType: 'json',
            success: function(data, textStatus, jqXHR) {
                window.top.location = data.redirect_url;
            }
        });
    });

})(jQuery)

您可以在此處了解有關jQuery Ajax實現的更多信息: http : //api.jquery.com/jQuery.ajax/ 有一個shothand方法來做帖子$.post() ,我只是出於示范目的選擇使用標准的$.ajax()

暫無
暫無

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

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