我需要构建一个包含许多选择字段的 Web 表单,这些字段的选择取决于对先前字段的回答。一个典型的例子是车辆年份 > 品牌 > 车型表格,其中品牌的选择选项在选择年份之前不会填充,而模型的选择选项在选择品牌之前不会填充。填充每个单独字段的 sql 如下所示:
select distinct year from cars
select distinct make from cars where year = [answer above]
select distinct model from cars where year = [answer above] and make = [answer above]
它将是已经在 Django 中实现的项目的一部分,所以我希望它也可以用 Django 来实现。虽然我对这种类型的表单没有经验,但我对支持它必须发生的异步 javascript 调用有一个初步的了解。
表格如下所示:
class CarForm(forms.Form):
year = forms.ChoiceField(choices=get_years())
make = forms.ChoiceField(choices=get_makes(year))
model = forms.ChoiceField(choices=get_models(year, make))
视图如下所示:
def save_car(request):
if request.method == 'POST':
form = CarForm(request.POST)
if form.is_valid():
handle_results(form.cleaned_data)
return HttpResponse('Success')
else:
form = CarForm()
return render_to_response('car.html', locals())
我最大的问题是如何更新每个选择字段的选择。任何帮助都会很棒!