用Django动态更新表单
Dynamically updating form with Django
我需要建立一个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())
我最大的问题是如何更新每个选择字段的选择。如果有任何帮助就太好了!
我推荐你看看这篇关于django中ajax和jquery的文章
当您在视图中获得此ajax调用的回调时,您可以检查在请求中传递的上下文。基于这些数据,你可以过滤下拉列表的结果。
看起来你已经有一些方法或函数可以得到你想要的具体细节。您可以将请求中的数据直接传递给它们。
你可以通过覆盖django forms _init_方法和模板中的javascript来实现。Check Here
相关文章:
- Javascript更新孙窗口中的表单元素
- 如何创建对表单的自我更新响应
- 表单文本框未自动更新
- 如何在ExtJS中用表单更新商店
- 节点.js表单更新有和没有 ajax
- 第三方(随机网站访问者)是否有可能通过 php 表单更新.html索引文件中的某些.js代码
- 使用JS/RRails和下拉表单更新URL查询字符串
- 表单更新“;重置”;按钮以获取新数据
- 通过Django/Python中的自定义表单更新用户数据
- 如何从没有数据库的另一个页面创建用HTML表单更新的页面
- Rails4:通过Ajax进行的表单更新不起作用->模板错误
- 使用jquery中的click()事件从表单更新Highchart
- 通过表单更新JSON
- 从Sencha应用程序中的表单更新服务器上的xml文件
- Gs函数传递'undefined'到jsfunction(动态表单更新)
- 不能用动态数组id从流星表单更新mongo值
- Javascript表单更新点击
- 用HTML表单更新XML
- Javascript刷新发生在子表单更新数据库之前
- Rails动态表单更新