2

ユーザーは車種を選択する必要があり、選択に基づいて車種を選択するオプションがあり、その選択に基づいて、そのモデルで使用可能な特定の色を表示するオプションがあります。

車両、モデル、色ごとに個別のdjangoモデルがあり、各車両インスタンスには多くのモデル(多対多のフィールド)があり、各モデルには色(多対多のフィールド)があります。

ユーザーがこれを動的に実行できるように、テンプレートをどのように作成しますか?別のビューにリダイレクトされたくありません。ユーザーがドロップダウンボックスから車両を選択できるように、jqueryを使用する必要があると思います。その後、ユーザーの選択に基づいて、別のドロップダウンボックスが表示されます。

何か案は?

4

2 に答える 2

4

私のアプローチは、ajaxを使用して選択ボックスの内容を動的に変更することです。これを実装する方法はたくさんあります。これが1つです...

  • 3つの選択ボックス(車両、モデル、色)を作成します
  • 最初のエントリにすべての空白のエントリとすべての車両を入力します
  • 車両とモデルのonchangeイベントをトラップし、対応するjavascript関数を作成します。

VehicleChange関数のsudoコードは次のとおりです。

  • すべてのモデル選択オプションをクリアする
  • すべての色選択オプションをクリアする
  • ajaxを使用してサーバーからモデル選択オプションをフェッチする
  • モデル選択ボックスにデータを入力します。

modelChange関数のsudoコードは次のとおりです。

  • クリアカラー選択オプション
  • ajaxを使用してサーバーから色選択オプションをフェッチする
  • 色選択ボックスに入力します。

だから今何が起こるかです:

  • ajaxを使用しているため、ページは更新またはリダイレクトされません。
  • 「モデル」と「カラー」のモデルは可能な限りシンプルなままです
  • 「モデル」と「カラー」に対するあなたの見方は非常に小さくなります。考えられる1つのビューは、次のようなものになります。

    <optionvalue="Red">赤</option>
    <optionvalue="White">青</option>
    <optionvalue="Blue">青</option>

選択ボックスのオプションを変更するには、jqueryを使用して選択ボックスを取得し、htmlをajax呼び出しの結果に置き換えます。

于 2012-03-10T20:10:50.013 に答える
0

django用のajaxライブラリであるdajaxを使用できます。彼らのウェブサイトには、非常によく似た例もあります-> http://www.dajaxproject.com/forms/

于 2012-03-11T00:27:39.993 に答える