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

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

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

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

有什么想法吗?

【问题讨论】:

    标签: jquery django django-models django-templates jquery-click-event


    【解决方案1】:

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

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

    这里是vehicleChange函数的sudo代码:

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

    这是modelChange函数的sudo代码:

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

    所以现在发生的事情是:

    • 因为您使用的是 ajax,所以您的页面不会刷新或重定向。
    • “模型”和“颜色”模型尽可能简单
    • 您对“模型”和“颜色”的看法变得非常小。一种可能的视图会产生如下内容:



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

    【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      相关资源
      最近更新 更多