Djangoのモデルに設定するフィールドには文字列を表す、CharFieldとTextFieldがあります。
今回は、CharFieldとTextFieldの違いを紹介します。
CharField(max_length = None, **options)
- 短〜長文向けのテキストのフィールドです。
- デフォルトのフォームウィジェットは TextInput です。
- 引数のmax_lengthは必須です。フィールドの最大文字数を設定します。この制限はDBに適用され、DjangoではMaxLengthValidatorを使って検証します。
TextField(**options)
- 長文向けのテキストのフィールドです。
- デフォルトのフォームウィジェットは Textarea です。
- max_lengthは任意です。設定すると自動生成されるフィールドのTextareaウィジェット内に反映されますが、モデルやDBには適用されません。
共通点
どちらもDBではVARCHAR型として作成されます。
私がCharFieldとTextFieldを選ぶ基準は、フォームのウィジェットでTextInputを使いたいか、Textareaを使いたいかどうかで選んでいます。
コメントを残す