2011-07-10 73 views
0

我目前正在研究一個Django項目,目前我正在研究一個包含多個元素的窗體。每個元素都是動態的,當它上面的元素更改值時,需要更新它的選項。我知道我可以使用AJAX更新元素內容,只要其他值更改,但我想知道是否有更多的Django方式,或者無論如何做這個服務器端?我的主要目標是在不重新加載整個頁面的情況下完成任何反饋。謝謝!在沒有重新加載頁面的情況下更新Django中的表單值?

更新:我的問題與Django ajax form, choicefields dependancy非常相似但我不完全理解答案中的內容。如果有人能夠更詳細地解釋它,那現在就能解決我所有的問題。我試着回答這個問題,但是當我嘗試加載它時,出現了500和403錯誤。

後續操作:顯然我的所有問題都來自過時的jQuery庫,一旦我更新它,一切都會重新開始!

+0

只需創建一個視圖並使用jquery + ajax。我只是看着這個鏈接,它很自我解釋。 – Nix

+2

我沒有得到回答者獲取模型中引用的'book_view'的位置。這可能是你自己的解釋,但我仍然迷失在正在創建的視圖中正在發生的事情 – Parker

+1

你能更具體一點嗎?字符串「book_view」在頁面上不存在... –

回答

5

AFAIK沒有做阿賈克斯的規範Django的方式......但它的童話直截了當地做自己:

首先你得創造出任何返回JSON數據將需要更新視圖視圖。例如,城市在一省列表:

​​

其次你要調用視圖從HTML(假設的jQuery):

<select id="provinces"> 
    … 
</select> 

<select id="cities" disabled="true"> 
    <option>---</option> 
</select> 

<script> 
$("#provinces").change(function() { 
    var province = $(this).val(); 
    $.getJSON("{% url list_cities %}", { province: province }, function(cities) { 
     var cities_select = $("#cities"); 
     … put the `cities` list into the `cities_select` … 
    }); 
}); 
</script> 

而且,除了「prettying起來「和錯誤檢查(例如,如果list_cities的調用失敗會發生什麼?),這基本上就是它的全部。

+1

謝謝大衛,我會試試這個,我很感激你花時間幫助我 – Parker

相關問題