Document
Topic
HTMLを手動で生成する方法 *
Form fields *
requiredはデフォルトではTrue
Formクラスのfieldはbase_fieldsにある *
self.fields = copy.deepcopy(self.base_fields)
CharFieldのstripパラメーターをFalseにしないと入力値の前後のスペースを削除する *
サブクラスが継承もとのfieldを無効にしたい場合はそのNoneを代入する
class FooForm(BarForm):
bar = None // BarFormのbar fieldを無効
値を変更したい場合、is_valid()前ならform.fields[field_name].initial
後ならform.cleaned_data[field_name]を変更する
widgetでコントロールを指定する
コントロールのHTML要素の属性はattrsで指定する
ファイルをアップロードする方法(FileField) *
フォームのすべてのエラーメッセージを表示する *
for field, errors in form.errors.items():
for error in errors:
print(error)
Fieldのリストはbase_fieldsにある
それをFormのインスタンスごとにコピーしている
self.fields = copy.deepcopy(self.base_fields)
Formのerror_messagesを属性を使って動的に生成 *
Form Class *
-
初期値をセットする場合はinitialに指定する *
-
form.non_field_errorsはfieldに紐づいていないclean()とかのValidationErrorを返す *
-
入力コントロールのidはauto_id
-
エラーメッセージを追加するにはadd_errorを利用する。
-
カスタムバリデーションはcleanに書く
-
バリデーションはis_validで行う
-
バリデーション後のフォームのデータはcleaned_data
-
デフォルトのエラーメッセージはerror_messagesに定義する
-
フィールドに指定する変数一覧 *
-
テンプレートでform.foo.valueで値を表示することができる
-
コントロールの属性の指定方法 *
-
wigetの一覧 *
-
wigetの属性を変更する
form.fields[“foo”].widget.attrs[“bar”] = “qwert” -
ModelFormではBooleanFieldはrequired=Falseになっている
-
ModelFormでrequired=Falseにする方法
-
Formのバリデーション *
-
ValidationError *
-
テンプレート内でフォームのフィールドのプロパティ一覧 *
-
FileField ファイルアップロードをするときに使用する *
ファイルがない場合はキー自体がない