ジャンゴ〜フォームの基本を説明


今日は簡単な紹介をお話しましょう、強力なフォーム機能をDjangoの
バイナリ
   1 ModelFrom ModelFromのみを継承するために指定したフィールドや他のオプションを宣言する必要があります
   (今日の私たちの主なプッシュこの)Froms 2を
     1つのフォームは、各フィールドの規定を宣言する必要がある
     2 forms.pyファイルベースフォームをForm1、DeclarativeFieldsMetaclass
     。3 froms.pyは、関連するフィールドのプロパティを継承し、それが直接、ファイルの属性を呼び出すことができる
アクションFroms 3
    自動的に生成するHTMLフォーム要素の正当性を確認するために、フォームデータを 
    対応に第二のデータ型変換(文字型のデータをPythonのタイプ)
の4つのコンテンツ
    メタデータ定義定義のフィールド2メソッドオーバーライド
5シート法の
    形態をForm1 =({})
   1 form.is_valid():#フォームデータの検証は、正当なリターン真/偽である
      形態である場合、1点注余分なフィールドがある限り、対応するフィールドが要件を満たすために、彼らはまだ真を返すことがあり、そこにある
   #出力は、間違ったフォーマットがコンテンツタグ付けが含まれている- >辞書:2 form.errorsを
    ポイントに注意
    1背面:フィールドのエラーメッセージを取りますform.errors.get(「キー」)[インデックス ] - > これは、ここで注意され、エラーメッセージが複数あってもよい
    2フロント:フィールドエラーerror.kを取ります <span>のラベル付きey.index
    3フロントエンドの後端部は、使用エラー{form.errorsリターン}返す
    。必要4体の一般的なエラーの種類、無効
 3 form.cleand_data: - >辞書取得フォームデータ#
    注1 cleaned_dataタイプフィールドに一致点の値はフィールドの型を定義します。
               値2値= form.clean_data.get実施例
               3つの記憶データmodel.object.create(** form.cleand_data)
 。図4は、確認する必要があり、自動的に生成されたラベルをラベル結合形態を担持する、遠位端を示す 
   1 form.as_pを:位Pタグ形態は、レンダリングされた
   2つのform.key#はフィールドラベル生成取る
制御関連する5つのフィールド
   1は、自動的にデフォルトの主キー、指定されていない場合は作成する
   2 maxは/ MIN_LENGTH制御レングス制限、CharFiled必須
   ではない3必要なニーズのデフォルトを空の
   4 error_messagesは、カスタム例えばエラー:error_messages = {「必要/ vaild」:「あなたの名前を入力してください」}( 実際に使用されていない)、辞書には、独立変数を確立することができます
6元データ
  クラスのMetaクラスを定義し
  、データベースに「」= DB_Tableのを実際のテーブル名
7つのサンプルコード
 1つのモデルモジュール
  クラスのユーザー(models.Model):
  ユーザー= models.CharField(max_lengthを= 5)
  パスワード= models.CharField(max_lengthを= 15)
  、電子メール= models.CharField(max_lengthを= 12)
  クラスのMeta:
  DB_Tableの= 'ユーザーズ
2つのビュー模块
 デフ(リクエスト)登録:
 request.method == 'POST'の場合:
   biaodan = UserFrom(request.POST)
   biaodan.is_valid場合():
      User.objects.createは(** biaodan.cleaned_data)
      ('WAEを')はHttpResponseを返す
   他:

       =ユーザーフォームのフォーム()
      (地元の人々 ()については、「register.html」リクエスト)レンダリングを返す
 他:
  )(ユーザーフォーム=を形成し
  、地元の人々についてのローカル変数に(地元の人々 ()について、要求、「register.html」)レンダリングを返す#
3フォームモジュール
  クラスUserFrom(forms.Form):
  ユーザforms.CharField =(= 15 MAX_LENGTH、ラベル= 'ユーザ名'、error_messages = { "必須" : " ユーザ名ニーズが必要"})
  パスワード= forms.CharField(MAX_LENGTH = 10 、ラベル= 'パスワード'、ウィジェット= widgets.PasswordInput(ATTRS = { 'クラス': 'コントロールフォーム'}))
  メールに= forms.CharField(= 10 MAX_LENGTH、ラベル= 'メールボックス'))
4フロントエンドコード
   レンダリング1
  <フォームアクション= "/レジスタ/" METHOD = "POST">
  {%}%csrf_token
  の<div>
  名:{{form.user}} <スパン > {{エラー。ユーザー}} </ span>を
 </ div>
  <div>の
 密码:{{form.password}} <スパン> {{error.password}} </スパン>
  </ div>
  <div>
  邮箱:{{form.email}} <スパン> {{error.email}} < /スパン>
  </ div>
  <div>
  <INPUT TYPE = "提出"値= "提交" />
   </ div>
  </ FORM>
渲染方法2
 <フォームアクション= "/レジスタ/" METHOD = "POST">
 {%csrf_token%}
 {日出願形態における%用%}
 {%ENDFOR%}
渲染方法3
<FORM ACTION = "/レジスタ/" METHOD = "POST">
{%csrf_token%}
{フォーム%で提出用%}
< DIV CLASS = "フォーム列">
<ラベル> {{filed.label}} </ラベル>//表示ラベルフィールドを指定
{{日出願}} //表示フィールド
エラーメッセージ表示// {{filed.errors}}
</ div>
{%} ENDFOR%を
<INPUTタイプは=「送信」>

</フォーム>
9を加え
2は二層の認証メカニズムを1つの遠位フォーム
端を2カスタムパッケージ重量の制約の表示属性
ウィジェット= widgets.type(ATTRS = {「クラス」:」フォームコントロールを「})

おすすめ

転載: www.cnblogs.com/danhuangpai/p/10984420.html