2013-12-09 70 views
1

我將嘗試描述問題: 在HTML中,我有一些AJAX調用,可以說,URL getMetaData(這是views.py中的函數)。我的功能,我檢查POST字典檢查是所有值。如果不是,我想重定向到主頁面(「main.html」)。 main.html在同一個views.py文件中的函數main(request)中呈現。 當我這樣做:Django不會將我重定向到另一個視圖

def main(request): 
    return render(request,'main.html') 

def getMetaData(request): 
    if dictionary not valid: 
     return main(request) 

這不工作...主函數被調用,但頁面保持不變。

回答

1

ajax調用中的重定向不需要更改頁面,無論如何,將POST和GET混合起來不是一個好主意。我建議你處理這一切在Ajax調用,而是重定向那裏,所以你的Django的看法是這樣的:

def getMetaData(request): 
    if is_invalid(request.POST): 
     return redirect_url 
    else: 
     return None 

而jQuery的:

$.post(post_url, data, function(new_url) { 
    if (new_url== null) 
     do_stuff(); 
    else 
     window.location.replace(new_url); 
}); 
0

的問題是,你這樣做用AJAX調用。你的Python代碼應該工作(至少,這個小例子我不明白爲什麼它不會),但你的主頁的HTML將返回到你的AJAX調用的數據。沒有理由爲什麼你的瀏覽器會顯示它作爲當前頁面。

如果你想根據AJAX調用的結果做一些不同的事情,你應該用Javascript來做。你能告訴我們嗎?

相關問題