2009-01-14 62 views

回答

3

這是(主要是)前端的東西。

正如你可能已經注意到Django試圖離開所有的AJAX東西給你,所以我不認爲你會發現內置任何東西來做到這一點。

但是,使用JS(這是你必須爲了做到這一點,而無需手動提交十億形式做什麼),你可以輕鬆擁有一個Django基本視您的JS可以與溝通:

def get_states(request, country): 
    # work out which states are available 
    #import simplesjon as sj 
    return sj.... 

然後將您的AJAX請求綁定到selectonchange事件(我不記得這是否適合選擇框),並根據JSON查詢的返回來填充下一個字段。

10分鐘的工作與jquery和simplejson。

+0

+1:這幾乎完全是Ajax和Javascript。幾乎沒有Django。 – 2009-01-14 14:08:09

+0

同意!正在尋找一個例子 – user54957 2009-01-14 15:29:56

1

我還建議考慮一次性獲取所有數據的映射,而不是逐個請求子域值。除非子領域的選擇經常變化(州/城市變化?)或數量巨大(> 1000),否則這應該提供最佳性能,並且不那麼複雜。

你甚至不需要創建一個單獨的視圖,只需在你的包含表單的響應中包含一大塊JavaScript(更準確地說是一個JSON映射)即可。