自動化無しに生活無し

WEBとかAIとかLinux関係をひたすら書く備忘録系ブログ

【Django】モデルクラスのcleanメソッドでバリデーションをする

  • 作成日時:
  • 最終更新日時:
  • Categories: サーバーサイド
  • Tags: Django
thumbnail

下記記事は、フィールドにvalidatorsオプションを

【Django】models.pyにて、オリジナルのバリデーション処理を追加する【validators】【正規表現が通用しない場合等に有効】

下記記事は、フォームクラスにcleanメソッドを実装した。

【Django】ManyToManyFieldにはフィールドオプションvalidatorsは効果なしなので、フォームクラスに追加のバリデーションを【多対多は特殊】

本記事では、モデルクラスにcleanメソッドを実装させる。

from django.core.exceptions import ValidationError

class Topic(models.Model):
    comment     = models.CharField(verbose_name="コメント",max_length=2000)

    def clean(self):
        super().clean()

        # 100文字未満の短文は拒否
        if len(self.comment) < 100:
            raise ValidationError("この投稿は短すぎます。")

モデルを元にしたフォームクラスの場合、モデルのcleanメソッドを引き継ぐ。

スポンサーリンク

シェアボタン

Twitter LINEで送る Facebook はてなブログ