私はそれで外部キーを持つモデルを作成:Django、modelformのchoicefieldから空白の選択肢を削除するには?
class Book(models.Model):
library = models.ForeignKey(Library, null=False, blank=False)
...
をして、私がユーザーに表示するためのModelFormでフォームを作成しました:
class BookSubmitForm(ModelForm):
class Meta:
model = Book
と私はページを表示私はライブラリの選択だけでなく、デフォルトで空白(--------)の選択肢を得る。
ModelFormではその空白の選択肢を取り除くモデルではnull = False、空白= Falseにすると考えましたが、リストに実際の選択肢しか持たず、その選択肢を持たないためには何ができますか?
が、私はまだ同じラベルを持つ新しいものと同じ選択肢と並んでますが、空白なしで空白を選択して、フォームの元ChoiceFieldを参照してください。 我々は何をすべきことは、最初の選択肢を削除することです選択。このメソッドはフォームをオーバーライドするのではなく、同じフィールドで展開しているようです。 – Bastian
私の悪い、それはタイプミスだった、私はあなたの例 "ライブラリ"のような大文字の最初の文字を使用しました。小文字の "ライブラリ"に切り替えると、実際にフィールドが上書きされます。ありがとう! – Bastian
素晴らしい!クエリーセットを変更しない場合は、単純に 'self.fields ['library']。empty_label = None'とすることもできます。 – guival