2

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

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

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

有任何想法吗?

4

2 回答 2

4

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

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

这是 vehicleChange 函数的 sudo 代码:

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

这是 modelChange 函数的 sudo 代码:

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

所以现在发生的事情是:

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

    <option value="Red">红色</option>
    <option value="White">蓝色</option>
    <option value="Blue">蓝色</option>

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

于 2012-03-10T20:10:50.013 回答
0

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

于 2012-03-11T00:27:39.993 回答