データベーステーブルの学生の動作の以下の例
#の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})