Django Jquery:基于选择,显示更多选择选项

Posted

技术标签:

【中文标题】Django Jquery:基于选择,显示更多选择选项【英文标题】:Django Jquery: based on selection, display further selection options 【发布时间】:2012-03-27 19:36:46 【问题描述】:

用户必须选择一种车辆类型,然后根据他的选择,他可以选择车辆型号,然后根据该选择,他可以选择查看该型号可用的特定颜色。

每个车辆、模型和颜色都有单独的 django 模型,其中每个车辆实例有许多模型(多对多字段),每个模型都有颜色(多对多字段)。

您将如何创建模板以便用户能够动态执行此操作?我不想被重定向到不同的视图。我想我需要使用 jquery 以便用户可以从下拉框中选择车辆,然后根据他的选择出现另一个下拉框等等。

有什么想法吗?

【问题讨论】:

【参考方案1】:

我的方法是使用 ajax 来动态更改选择框的内容。有很多方法可以实现这一点。这是一个……

创建 3 个选择框(车辆、模型、颜色) 用所有空白条目和所有车辆填充第一个 捕获车辆和模型的 onchange 事件并创建相应的 javascript 函数。

这里是vehicleChange函数的sudo代码:

清除所有模型选择选项 清除所有颜色选择选项 使用 ajax 从服务器获取模型选择选项 填充模型选择框。

这是modelChange函数的sudo代码:

清除颜色选择选项 使用 ajax 从服务器获取颜色选择选项 填充颜色选择框。

所以现在发生的事情是:

因为您使用的是 ajax,所以您的页面不会刷新或重定向。 “模型”和“颜色”模型尽可能简单

您对“模型”和“颜色”的看法变得非常小。一种可能的视图会产生如下内容:

要更改选择框中的选项,您可以使用 jquery 抓取选择框并将 html 替换为 ajax 调用的结果。

【讨论】:

:如果我们以前不知道选项菜单的个数,有什么解决办法吗?我把我的问题作为单独的问题:***.com/questions/16505587/…【参考方案2】:

您可以使用 dajax,一个用于 django 的 ajax 库。在他们的网站上,他们甚至有一个非常相似的例子 --> http://www.dajaxproject.com/forms/

【讨论】:

以上是关于Django Jquery:基于选择,显示更多选择选项的主要内容,如果未能解决你的问题,请参考以下文章

Django/jQuery 级联选择框?

基于选择的 Django 模板/ChoiceField 显示字段

管理中的 Django/jQuery 级联选择框

基于下拉值选择显示Django ModelForm中的链接

根据另一个字段中的选择显示/隐藏 django 管理表单字段

选择特定单选按钮时的 Django Jquery 对话框