2011-11-17 42 views
0

(我的英文沒有好,對不起)我有一個問題,通過創建位置搜索的形式:我form.py目前如下:試圖篩選ChoiceField內容

from models import City, Zone 

class SearchForm1(forms.Form): 
    cityf = forms.ModelChoiceField(queryset=City.objects.all(), empty_label="none") 
    zonef = forms.ModelChoiceField(queryset=Zone.objects.all(), empty_label="none") 

但這是顯示與所有城市和地區存在的數據庫,我試圖做的是,在第一個領域是顯示所有城市,在第二個領域只顯示對應於所選城市的區域。

我試着這樣做:

class SearchForm1(forms.Form): 
    cityf = forms.ModelChoiceField(queryset=City.objects.all(), empty_label="none") 
    zonef = forms.ModelChoiceField(queryset=City.objects.get(
      name_city="cityf").zone_set.all(), empty_label="none") 

^不過我recive這個## ERROR:^

Exception Type: DoesNotExist 
Exception Value: 

City matching query does not exist. 

Exception Location: 

我也一直在尋找這樣的:http://www.stereoplex.com/blog/filtering-dropdown-lists-in-the-django-admin但最終它不需要離開它有人可以幫助我?

回答

1

你不能這樣做。由於在表單呈現時,城市(第一個領域)尚未被選中。

您可以以兩步向導樣式的形式進行操作。第一種形式只有城市,第二種形式只有該區域。在第二種形式中,使用第一種形式選擇的城市過濾區域。

另外,你可以使用JavaScript在第二個領域取決於第一個領域過濾。

+0

非常感謝你,嘗試創建2種形式,但你可以給我怎麼可以這樣使用JavaScript的例子嗎? – Barcelo