Djangoでバリデーションの実装について

カテゴリ:Pythonの話

公開日:2020.08.26 最終更新日:2023.08.09
このエントリーをはてなブックマークに追加

こんにちは!伊神です!

今回はDjangoでバリデーション機能を実装する方法をご紹介します。

バリデーション機能を実装するのに、いくつか方法がある中の「form.py」「view.py」で実装しようと思います。

また、弊社ではWebプロモーション成功事例集をまとめた限定資料を無料で配布しています。

Webマーケティングに興味がある方は、下記ページより目を通してみてください。

バリデーションとは

バリデーション(validation)とは、「入力チェック」のことです。

「ログイン」や「新規登録」などによく用いられており、「ログイン」なら登録された情報とあっているかどうかをチェックし、「新規登録」だったら入力形式があっているかどうかなどをチェックしています。

バリデーションのことについてわかりやすく解説しているサイトがありましたので、よかったら見てみてください。
▼「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
https://wa3.i-3-i.info/word11610.html

またwebで集客する方法を別の記事にまとめております。

詳しく解説しているので、web集客について深く知りたい方は、ぜひこちらもご覧ください。

web集客
【2023年更新】Web集客の方法と種類を無料・有料別に紹介!
今回の記事を読むことで、Web集客をして、実際に売上を伸ばすための最適な方法をご紹介します。

Djangoの場合どうバリデーションを実装するか

バリデーション機能の実装に今回は

  • 入力チェックの設定値やエラー時のメッセージを記載する「forms.py」
  • バリデーションのチェックをして正常な入力値なら保存処理を行う「views.py」
  • 表示のテンプレートとなる「user.html」

を編集します。

formクラス

sampleapp/forms.py

14行目:
required(必須かどうか)やmax_length(文字の最大の長さ)は、入力フィールドの属性として設定するバリデーションです。

14,16行目:
CharFieldやIntegerFieldなどの入力フィールドの種類によってバリデーションの属性の種類は少し違います。

Fieldについての公式ドキュメント:https://docs.djangoproject.com/ja/2.2/ref/forms/fields/#built-in-field-classes

5,9行目:
独自のバリデーションの関数(check_ageとcheck_email)を作りました。16,17行目の属性にvalidators=[独自バリデーション名]を設定することで独自のバリデーションを呼び出しています。

views.pyとuser.htmlテンプレート

sampleapp/views.py

9行目:
form.is_valid():でバリデーションチェックを行い正常な値だったらログイン画面に遷移し、登録できていない場合は登録画面にリダイレクトする処理を行っています。

sample/templates/user/user.html

13行目:
{{ form.as_p }}と書くと、フォーム内容が全て表示されます。

最後に

今回はバリデーションを実装するのにいくつか方法がある中の「from.py」「views.py」で実装する方法をご紹介しました。

clean()メソッドで、複数のフィールドに対してバリデーションを設定することができる機能があったりと便利な機能がたくさんあるので興味がある方は調べてみて下さい!!






弊社inglowでは、これから広告の運用を考えられている方、あるいはこれから広告代理店に運用をお願いされる方向けに、「業界別Web広告の成功事例」をまとめた資料を無料配布しております。

下記のフォームに入力いただくだけで、無料で資料をダウンロードしていただけます。ぜひご利用下さい。

mihon

    このサイトはreCAPTCHAとGoogleによって保護されています。プライバシーポリシー利用規約が適用されます。

    一覧へ戻る