[解決済み] Django のセレクトボックスの空白オプションのカスタマイズと削除
質問
私は Django 1.0.2 を使っています。 私は、モデルによってバックアップされた ModelForm を書きました。 このモデルは、blank=False の ForeignKey を持っています。 Django がこのフォームの HTML を生成するとき、 ForeignKey が参照するテーブルの各行に対して、一つの選択肢を持つセレクトボックスを作成します。 また、リストの一番上に、値を持たず、ダッシュの羅列で表示されるオプショ ンを作成します。
<option value="">---------</option>
私が知りたいのは
- この自動生成されたオプションをセレクト ボックスから削除する最もクリーンな方法は何ですか。
-
として表示されるようにカスタマイズする最もきれいな方法は何ですか。
<option value="">Select Item</option>
解決策を探しているときに、私は Django チケット 4653 を見つけ、他の人も同じ疑問を持っていて、 Django のデフォルトの動作が変更されたかもしれないという印象を持ちました。 このチケットは 1 年以上前のものなので、これらのことを達成するためのもっときれいな方法があるかもしれないと期待していました。
どんな助けにも感謝します。
ジェフ
編集:ForeignKeyフィールドをこのように設定しました。
verb = models.ForeignKey(Verb, blank=False, default=get_default_verb)
これはデフォルトを設定し、empty/dashesオプションではなくなっていますが、残念ながら私の疑問のどちらも解決していないようです。 つまり、empty/dashes オプションはまだリストに表示されたままです。
どのように解決するのですか?
まだテストしていませんが、Django のコードを読む限りでは はここにあります。 と はこちら で動作するはずです。
class ThingForm(models.ModelForm):
class Meta:
model = Thing
def __init__(self, *args, **kwargs):
super(ThingForm, self).__init__(*args, **kwargs)
self.fields['verb'].empty_label = None
EDIT : これは 文書化された がありますが、自動生成されたモデルフォームで作業している場合は、必ずしも ModelChoiceField を探すことを知らないでしょう。
EDIT : jlppが回答で指摘しているように、これは完全ではありません。empty_label属性を変更した後に、選択肢をウィジェットに再割り当てする必要があります。 これはちょっと面倒なので、ModelChoiceField全体をオーバーライドするのが理解しやすいかもしれません。
class ThingForm(models.ModelForm):
verb = ModelChoiceField(Verb.objects.all(), empty_label=None)
class Meta:
model = Thing
関連
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] Django filter queryset __in for *every* item in list
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] Spyderを仮想環境で動作させるには?
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] pycharmがタブをスペースに自動変換する
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?