質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Q&A

解決済

1回答

3359閲覧

webアプリケーションのフォーム上に親子関係のドロップダウンリストを表示する方法

negi41

総合スコア7

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

0グッド

0クリップ

投稿2016/10/10 09:58

###前提・実現したいこと
djangoとMariadbを使ってwebアプリケーションを作っています。
作っているアプリは、職場内で仕事上の失敗例、役立ち情報などをデータベースに蓄積し、活用
するためのものです。

その失敗例、役立ち情報は大分類、小分類を付与してデータベースに蓄積しようとしています。
情報を入力する際は、フォームに「大分類」、「小分類」、「情報」の3つが入力できる様にしています。
(大分類と小分類は親子関係であり、例えば大分類Aに紐づいた小分類a,b,c... といった感じ)

そのフォームでは、大分類と小分類はリストボックスになっており、大分類の選択に応じて小分類
のリストが変わる動的なものにしたいと考えています。

###発生している問題・エラーメッセージ
model.py, view.py ,templateを作って実装するところまでやってみたのですが、
唯一、フォーム内の「大分類」、「小分類」の入力が期待したとおりに実装できていません。
具体的には、大分類を選んでも、小分類の選択肢が絞られず、小分類フィールドの全ての値がリストとして表示されます。理想的には、選んだ大分類によって、対応した小分類のみがリストに表示されてほしいです。

大分類、小分類の間には主キーによって関連性を持たせており、それはデータベース上で確認できているのですが、どうもdjango側の記述に問題がある様です。

→こういった、親子関係にある複数のフィールドをフォーム内でどのようにして表示するか、
一般的な実現方法を教えてもらいたいです。

###補足情報(言語/FW/ツール等のバージョンなど)
django1.1, python2.7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どうやってtemplateとformを書いてるかはわかりませんが、
通常は、フォームで大分類を選んだときに小分類をフィルタかけて
選択肢を絞るという機能は、javascriptで実装します。
標準ではそんなwidgetはなかったと思うので、
formに自分でjavascriptを書いてやる必要があります。

もう一つの選択肢として、入力フォームをウィザート形式にして、
大分類を選んだあとに画面遷移を行ってそこで小分類にフィルタをかける方法があります。
こちらは画面遷移の処理を書けばいいだけなので、自分でjavascriptを書く必要はないです。

投稿2016/10/30 15:45

kokardy

総合スコア781

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

negi41

2016/11/05 00:54

回答ありがとうございました。 javascriptで実現したいと思い、ajaxの概念にのっとった機能をいくつか勉強しているところです。 プログラムもアプリ開発も、満足のいくものを一つ作るまでが大変ですね。 諦めず頑張ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問