ウィジェットの概要と、使い方を解説【順番に説明していきます】

djangoでの入力フォームをカスタマイズできるウィジェット。

その使い方について学んでいきましょう。

まずはウィジェットの概要から

一言で言うと、HTMLファイル上での「見た目」をコントロールするのがウィジェットです。

といってもこれだけではよく分かりませんよね。

実際の例をみながら、ウィジェットの理解を深めていきましょう。

フィールドとの関連性は?

ウィジェットを理解するうえでまず押さえておきたいのが、フィールドとの違いです。

例えば、CharFieldをhtmlで表示させるとこのようになります。

テキストボックスが表示されているので、フィールドも見た目をコントロールしていると思ってしまいますよね。

ただ、見た目をコントロールしているのはやはりウィジェットなのです。

どういうことかというと、それぞれのフィールドはデフォルトでウィジェットが設定されているのです。

CharFieldの場合、デフォルトでTextInputウィジェットが設定されています。

ですので、TextInputウィジェットによってテキストボックスが表示されたのです。

CharFieldだけどチェックボックスにしてみる

ここで、ウィジェットを使ってCharFieldの見た目を変えていきましょう。

見た目をチェックボックスにしてみます。

sample = forms.CharField(widget = forms.CheckboxInput)

CharFieldであるにも関わらず、チェックボックスが表示されました。

このように、ウィジェットを使うことで見た目をコントロールできるというとをおさえておきましょう。


[補足]

すると、フィールドは何の役割を持っているのか?と思いますよね。

フィールドは、入力された情報のバリデーションが設定されています。

例えば、Eメールフィールドであれば、アドレスに@が入っているかといったバリデーションが実装されているのです。

ウィジェットは見た目、フィールドはバリデーションと覚えましょう。
ウィジェットの使い方を紹介

ここからはウィジェットの使い方についてみていきましょう。

ウィジェットを使うには、フィールドの後にwidgetを指定します。

先ほど使った例をまた見てみましょう。

sample = forms.CharField(widget = forms.CheckboxInput)

フィールドを指定したあとに、widget=..と書いています。

このように書くことで、ウィジェットを指定することができます。

ウィジェットの種類を紹介

主なウィジェットの種類とHTMLファイル上でのレンダリングのされ方を表にまとめました。

~Django無料講義~のご案内

Code for Djangoが、4時間超の無料Django講義をはじめました
 
・本を出版したCode for Djangoの
 製作者が作ったサイトです。
 
・Code for Djangoの内容も、
 動画で詳しく解説しています。
 
・動画は順次ふやしていきますので、
 ただで学び続けることが可能です。
 
・Djangoの効率的なスキルアップに、
 是非お役立て下さい。

                                                                  Django講義はこち
Created with