Django、モデルフォームの選択フィールドから空白の選択肢を削除するにはどうすればいいですか? 質問する

Django、モデルフォームの選択フィールドから空白の選択肢を削除するにはどうすればいいですか? 質問する

外部キーを含むモデルを作成しました:

class Book(models.Model):
    library = models.ForeignKey(Library, null=False, blank=False)
    ...

そして、ユーザーに表示する ModelForm を使用してフォームを作成しました。

class BookSubmitForm(ModelForm):
    class Meta:
        model = Book

フォームを含むページを表示すると、ライブラリの選択肢が表示されますが、デフォルトで表示される空白 (--------) の選択肢も表示されます。

モデルに null=False と blank=False を設定すると、ModelForm の空白の選択肢が削除されると思いましたが、そうではありませんでした。リストに実際の選択肢のみを表示し、その選択肢を表示しないようにするにはどうすればよいでしょうか。

ベストアンサー1

見るモデル選択フィールド. empty_label を None に設定する必要があります。コードは次のようになります。

class BookSubmitForm(ModelForm):
    library = ModelChoiceField(queryset=Library.objects, empty_label=None)

    class Meta:
        model = Book    

編集:フィールド名を小文字に変更しました

おすすめ記事