2014-10-02 31 views
0

我是新的Django和AJAX(javascript)。 最後,我可以發送一些參數到Django視圖。這個視圖呈現一個編輯表單。 我發送的參數和視圖響應的形式與我需要的信息,但我不能重定向到從視圖呈現的形式。 AJAX溫控功能:Django中的AJAX GET請求後重定向

$.ajax({ 
    type:"GET", 
    url: "/recepcion/", 
    datatype: 'json', 
    data: ({i: idpro[0].innerHTML, a: ano[1].innerHTML, m: mes1[2].innerHTML }), 
    success: function(data){ 
     window.location.href = data.redirect; 
     //window.open("GET",url,true) 
     } 
}); 

Django的看法:

def RecepcionView(request): 
    idp = request.GET.get('i') 
    anio = request.GET.get('a') 
    mes = request.GET.get('m') 
    if request.method == 'POST': 
     r = DetalleRecepcion.objects.get(id_proveedor=idp,anio=anio,mes=mes) 
     form = RecepcionForm(request.POST, instance=r) 
     if form.is_valid(): 
      form.save() 
      return HttpResponseRedirect('/monitor/') 
    else: 
     r = DetalleRecepcion.objects.get(id_proveedor=idp,anio=anio,mes=mes) 
     form = RecepcionForm(instance=r) 

    return render_to_response('recepcion.html', 
           {'form':form}, 
           context_instance=RequestContext(request)) 

在螢火控制檯可以看我的反應,是我需要的信息的形式。 我不知道如何從響應中重定向到頁面,我不確定是否必須在django視圖中添加一些重定向函數,或者僅在ajax成功函數中添加重定向函數。 我對這兩種語言真的很陌生,我很困惑錯誤在哪裏。

在此先感謝

+0

爲什麼你要使用Ajax,如果你想重定向?爲什麼不使用標準表單並從那裏返回重定向? – 2014-10-02 17:02:29

+0

我不從表單發送參數。我有一個帶有幾個選擇下拉按鈕的HTML表格。當用戶點擊選擇設置時,我會採用三個值,即年份和月份,並將其傳遞給視圖。我用一個簡單的表單測試我的視圖,並且工作正常並重定向到他編輯表單時沒有任何問題。問題是當我嘗試從函數重定向時。 – Joseleg 2014-10-02 17:45:04

回答

0

我從你的代碼,你有一個「普通」視圖(而不是視圖,其目的是處理Ajax數據)猜測。重定向可以在視圖中實現,你不需要Ajax。 只需提交表格。在你recepcion.html文件寫類似

some html 

<form method="POST" action=""> <!-- we leave the action part blank, to send the data to the same view --> 
    {{ form }} <!-- the form you are passing to the template --> 
    {% csrf_token %} <!-- do not forget the token or django will return an error --> 
    <input type="submit" name="submit" value="Submit"/> 
</form> 

some html 

BTW:

+0

感謝您的快速回復,但我沒有從窗體中獲取參數,而是使用django-tables2呈現的html表格參數。在我的表格中,我有一個帶有幾個選項的下拉按鈕,每個選擇都必須重定向到採用id,年和月等一些參數的不同編輯表單。如果你知道一個更好的方法來實現這個功能,請讓我知道,請提前致謝 – Joseleg 2014-10-02 17:47:28

+1

順便說一句,我有你喜歡你的形式意見我和如果是結束從一個簡單的HTML表單的值工作正常,瀏覽器將我重定向到編輯表單,我認爲我的錯誤在於重定向到ajax函數中的響應 – Joseleg 2014-10-02 17:53:41