2016-05-22 7 views
1

Enquiryというモデルに値を転記している連絡フォームがあります。 Enquiryモデルには、フォーム上のドロップダウン選択ボックスであるenquiry_typeという名前の属性があります。現在のオプションは '一般的な問い合わせ'です& 'コールバックを要求する'。Django-adminユーザーに<select>ドロップダウンに<option>を追加させる

私の質問は、管理者がこのドロップダウンに追加することを許可するためのベストプラクティスですか?私はEnquiryTypeという名前の別のモデルを、.textという属性で作成しようと考えていましたが、&という形でこれを繰り返していますか?これにより、管理者は.text値の新しいオブジェクトを作成することができます。たとえば、彼らはドロップダウンに 'Request a email quote'を追加することができます。

これは正しい考えですか、それとももっと簡単に受け入れられるプロトコルですか?申し訳ありませんまだDjangoに新しい!

+1

Djangoには正しいことがあります.Djangoには、[ModelChoiceField'](https://docs.djangoproject.com/ja/1.9/ref/forms/fields/#django.forms.ModelChoiceField)がありますそれ。 – solarissmoke

答えて

0

唯一の要件がある - 選択フィールドはもちろん、それらのオプションを保存し、値またはタプルのリスト(値、説明)のリストを取得する必要がありますが、これを実行する方法二つ目

はあなた次第です - あなたのニーズとスキルに合った解決策を見つける必要があります

プライマリテーブルから外部キーとして参照されるセカンダリテーブルを持つことが最も簡単です - このモデルの管理者は非常に高速で作成でき、あなたが選択肢をたくさん得たときに始まります...)

他のオプションは、任意のdjang "ダイナミックな設定"を提供する - それらのうちのいくつかはリストを格納するオプションを持っていますが、そのうちのいくつかは単純なオブジェクトだけを提供しますが、テキストフィールドにコンマ区切りのリストを格納することもできます。

別のオプションは、ファイル(インポートすることができる.pyファイルでさえ)

これらのオプションのそれぞれは、今すぐツールを持っています - 賢明に選択してください!

関連する問題