モデルフォームでは初期設定の記述をdef__init__を使って記述する
def __init__(self, facility_set=None, *args, **kwargs):
"""AccessLogCreateFormの初期処理."""
super().__init__(*args, **kwargs)
self.fields['facility'].queryset = facility_set
self.fields['facility'].empty_label = None
facility_choice_list = []
for s_facility in facility_set:
facility_choice_list.append((s_facility.id, s_facility.name))
facility_choices = tuple(facility_choice_list)
self.fields['search_facilities'].choices = facility_choices
解説
self.fields['facility'].empty_label = None
変数.empty_label = Noneで未設定の表示をしないという設定
empty_labelとは
ModelChoiceField
やModelMultipleChoiceField
において使用されるオプションの一つです。
このオプションは、セレクトボックス(ドロップダウンメニュー)の最初の選択肢として表示される「未選択」のラベルをカスタマイズするために使用されます。
デフォルトでは、DjangoはModelChoiceFieldで「---------」というラベルを未選択のオプションとして自動的に追加します。