【Django】Form の choices を dict から作成する
投稿日: 2023/06/03
更新日: 2023/06/03
更新日: 2023/06/03
概要
あらかじめ dict で作っていたデータをそのまま Form の選択肢にしたい場合の簡単なやり方
コード
menu_dict = {
1: "Aコース",
2: "Bコース",
3: "Cコース",
}
という dict があった時
list(menu_dict.items())
# [(1, 'Aコース'), (2, 'Bコース'), (3, 'Cコース')]
を choices に指定できる。
実際に使う感じは以下のような感じ。
(menu_dict が不変であれば★の中で指定できますが、可変する場合はinit内で呼び出して使いましょう)
class HogeForm(forms.Form):
menu = forms.ChoiceField(label="メニュー") # ★
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
menu_dict: dict = get_menu_dict() # 辞書をとってくる処理
self.fields["menu"].choices = list(menu_dict.items()) # ココ!