(我的英语不好,对不起)我在按位置创建搜索形式时遇到问题:我目前的form.py如下:
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")
^但我记得这个##错误:^
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但最终它不需要留下有人可以帮助我吗?
答案 0 :(得分:1)
你不能这样做。由于在渲染表单时,尚未选择城市(第一个字段)。
您可以采用两步向导式表单。第一种形式只有城市,第二种形式只有区域。在第二种形式中,您使用在第一种形式中选择的城市过滤区域。
或者你也可以使用javascript来过滤第二个字段,具体取决于第一个字段。
答案 1 :(得分:0)
您可能希望在django smart selects中使用Grouped Selects功能。看看这个重复问题的答案: