十二、データ検証のModelFormのジャンゴ

データベーステーブルの学生の動作の以下の例

#のmodels.pyの クラスの学生(models.Model):名前 = models.CharField(verbose_name = ' 名称'、MAX_LENGTH = 10 )電話 = models.CharField(max_lengthを= 11、ユニーク=真、verbose_name = ' 手机号' )お金 = models.FloatField(verbose_name = ' '、デフォルト= 0、ヌル= 真)クラスのMeta:verbose_name = ' 学生表' verbose_name_plural = verbose_nameのDB_Table = ' 学生' DEF __str__ (自己):リターン self.name

モデルフォーム

1、クラスチェックの定義は、データを検証するために使用しました

チェックするためのインポートのModelFormモジュール
から `` django.forms`` インポートのModelForm

継承のModelForm、データベースの学生検証
クラスStudentForm(のModelForm):
     クラスのメタを:
        モデル =学生#のデータベーステーブル名 
        のフィールド= __all__  すべてのフィールドに代わって
        フィールド= [「名前」、「電話」]フィールド#の
        フィールド#インクルードは除外する= [「マネー」]調査

2、チェック

user.models インポート学生
 から django.views インポートビュー
 から django.core.paginatorのインポートページネータ
 から django.httpの輸入はHttpResponse、JsonResponse

クラスStudentView(ビュー):
     DEF GET(セルフ、要求):#は、リストを取得
         #のクエリセットの 
        制限= request.GET.get(' リミット'、20) どのように多くの1 
        ページ= request.GET.get(' ページ'、 1) 最初の数ページの
        #は、ここに戻って返されるクエリの時に、データを照会しません
        #は、戻り、特定のページの戻り値の時に、そのデータのすべてをチェックアウト 
        all_students = Student.objects.all()。値(上記ID 名前電話番号
        page_obj =ページネータ(all_students、限界)分页对象 
        stus =リスト(page_obj.get_page(ページ)) 将クエリセット格式转リスト成 
        データ= { " ERROR_CODE ":0、" MSG "" 操作成功"" データ":stus、" カウント" :page_obj.count}
         戻り JsonResponse(データを、json_dumps_params = { " ensure_ascii " :FALSE})

    検証のためのポストリクエストの
    DEFの:ポスト(自己、要求)
         #1 のModelFormモジュールは自動的にテーブルを見つけるだろう、データ検証要求テーブルのフィールド 
        (request.POSTの)stu_form = StudentForm #のチェック結果
        のIF stu_form.is_valid( ): チェックの結果が正当なものである場合には
            **パラメータを超えるpostメソッドパスオフチェックstu_form.cleaned_data 
            Student.objects.create(** stu_form.cleaned_dataを)
            データ = { " ERROR_CODE ":0、' MSG '' 正常に加え' }
         そうでなければ
            データ = { " ERROR_CODE ":-1、' MSG ' :stu_form.errors.get_json_data()}
             stu_form.errors获取错误信息
        戻り JsonResponse(データ、json_dumps_params = { " ensure_ascii ":FALSE})

おすすめ

転載: www.cnblogs.com/yanyan-/p/11782968.html