2017-04-14 46 views
0

我有兩個意見如下Django的渲染工作不從另一種觀點認爲重定向時

def home(request): 
    levels = levelData.objects.all() 
    context ={ 
      "levels" : levels 
    } 
    print "abcde" 
    return render(request, 'home.html', context) 

,另一個

def create(request): 
    if request.method == "POST": 
     # doing something with data with saveData as variable of model type 
     saveData.save() 
     return redirect('home') 
    return render(request, 'create.html') 

現在,創建視圖裏面,我想重定向到主視圖保存數據後。重定向工作正常,並且正在執行home視圖中的print語句並將其重定向到home,並在終端中打印「abcde」。但是,home.html不會呈現,它仍然在create.html上。此外,網址不會更改。

這是我的urls.py

url(r'^$', home, name='home'), 

我在做什麼錯誤的歸屬看法?

+0

您是否通過ajax發佈了您的數據?(js/jquery /或類似的東西) –

+0

是通過ajax從js –

+0

Thankyou發表評論。我可以猜出問題並搜索它,並顯然添加'top.location.href =「/」;'符合目的。我無法理解這個原因。如果你能回答這個問題的原因,那會很好。 –

回答

4

如果通過AJAX發佈,你不能做that.You要做像

window.location.href = '/redirecturl/' 
在AJAX success回調

+0

是的,它的工作。但你能解釋爲什麼嗎? –

+0

,因爲它設置了href的位置......多數民衆贊成在ajax如何工作......有許多許多教程關於客戶端和服務器端操作之間的區別... –