Django Academy · レッスン

Widgets、Labels、Help Text

各フィールドの表示方法を制御します

レッスン 4/413 ステップ

「Widgets、Labels、Help Text」はCoddyKit上の無料Django Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDjango Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Django Academyコースには全4レッスンが含まれています。

フォームを整える

動作するModelFormは便利ですが、自動生成された入力欄はシンプルに見えます。widgets、ラベル、ヘルプテキストを使って、各フィールドの見た目や表示内容を調整できます。🎨

Widgetとは

widgetは、フィールド用に表示されるHTMLコントロールです。テキストボックス、textarea、日付ピッカーなどがあり、変更すると表示される入力欄を差し替えられます。

MetaでWidgetをオーバーライドする

Metaのwidgets辞書で、フィールド名を別のコントロールに対応付けます。ここではbodyフィールドを広いtextareaに変更しています。

class Meta:
    model = Post
    fields = ["body"]
    widgets = {"body": forms.Textarea}

Widget属性を渡す

Widgetをインスタンス化して、行数やCSSクラスなどのHTMLattrsを渡します。これにより、フォームをスタイルに組み込めます。

widgets = {
    "body": forms.Textarea(attrs={"rows": 4})
}

CSSクラスを追加する

同じattrs辞書にクラスを追加すると、スタイルシートで入力欄を対象にできます。Bootstrapや独自のユーティリティクラスに便利です。

forms.TextInput(attrs={"class": "form-control"})

プレースホルダーを設定する

placeholderは、ユーザーが入力欄をクリックする前に、何を入力すべきかを示します。attrsで追加して、入力をやさしく案内できます。

forms.TextInput(attrs={"placeholder": "Enter a title"})

カスタムラベル

Djangoはフィールド名からラベルを作成しますが、上書きもできます。Metaのlabels辞書で、任意のフィールドに分かりやすい表示名を設定できます。

labels = {"body": "Post content"}

ラベルが重要な理由

わかりやすいラベルは、フォームを読みやすく、アクセシブルにします。pub_date という名前のフィールドも、ユーザーには「公開日」と表示したほうが、はるかにわかりやすくなります。

ヘルプテキストの追加

help_texts dict は、フィールドの下に短いヒントを表示します。ラベルを煩雑にせず、入力の制限や形式を説明するために使います。

help_texts = {"title": "Keep it under 60 characters."}

カスタムエラーメッセージ

error_messages dict を使えば、バリデーションエラーの文言も変更できるため、アプリの雰囲気に合った表現にできます。

error_messages = {
    "title": {"required": "Please add a title."}
}

まとめて設定する

これらはすべてMetaの中でまとめて設定できます。widgets、ラベル、help_texts を組み合わせれば、追加のコードをほとんど書かずに、整ったブランド感のあるフォームを作成できます。

class Meta:
    model = Post
    fields = ["title", "body"]
    labels = {"body": "Content"}

理解度チェック

フィールドに表示される HTML コントロールを変更する Meta dict はどれですか?

まとめ:フィールドのカスタマイズ

できました!Meta では、widgets、ラベル、help_texts、error_messages を設定して、任意の ModelForm の見た目と表示内容を思いどおりにできます。🌟

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「Widgets、Labels、Help Text」レッスンは無料ですか?

はい。「Widgets、Labels、Help Text」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Django Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Django Academyコースには全4レッスンが含まれています。

「Widgets、Labels、Help Text」で何を学びますか?

各フィールドの表示方法を制御します ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Django Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDjango Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「Widgets、Labels、Help Text」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDjango Academyレッスンでコードを書いて実行できますか?

はい。すべてのDjango Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ModelFormとMeta.fieldsの宣言
  2. form.save()とcommit=False
  3. cleanメソッドによるカスタムバリデーション
  4. Widgets、Labels、Help Text
← Django Academyに戻る