電子工作作業報告書管理アプリその19
BooleanFieldの解説から
BooleanField:ブール値(真偽)
TureまたはFalseを保存するフィールド
主にチェックボックスなどで使われる
HTMLのinputタグ属性は、checkbox
サンプルコード
from django.db import models class Person(models.Model): first_name = models.CharField(blank=True, max_length=50) last_name = models.CharField(blank=True, max_length=50) paid_member = models.BooleanField()
CharField:文字列
文字列を保持する為のフィールド
文字列制限を表すフィールドオプションのmax_length(最大文字数)は
必須。指定しない場合は以下のようなエラーメッセージが出る
CharFields must define a 'max_length' attribute.
max_length(最大文字数)は255まで指定可能です。
大量のテキストを保存する場合は、TextFieldを代わりに使います。
HTMLのinputタグ属性はtextです
from django.db import models class Person(models.Model): first_name = models.CharField(blank=True, max_length=50) last_name = models.CharField(blank=True, max_length=50) paid_member = models.BooleanField()
IntegerField:整数
整数を保存するためのフィールドです。
field_name = models.IntegerField(**options)
- 2,147,483,648から2,147,483,647までの数値をサポートします。
HTMLのinputタグ属性はnumberです
from django.db import models class Person(models.Model): first_name = models.CharField(blank=True, max_length=50) last_name = models.CharField(blank=True, max_length=50) paid_member = models.BooleanField() age = models.IntegerField(blank=True, null=True)
TextField:テキスト
長い文字列(テキスト)を保存するためのフィールドです。
CharFieldでは保存できない長さの文字列を保存する場合、こちらのフィールドを使います。
models.TextField(**options)
保存するテキストサイズに制限がないので、ブログなどに最適なフィールドです。
またCharFieldとは異なり、フィールドオプションmax_lengthの指定は必要ありません。
HTMLの出力はtextareaタグです。
from django.db import models class Person(models.Model): first_name = models.CharField(blank=True, max_length=50) last_name = models.CharField(blank=True, max_length=50) paid_member = models.BooleanField() memo = models.TextField(blank=True)
DateField:日付
日付データを保存するためのフィールドです。
この日付はdatetime.dateインスタンスによって表される日付になります。
DateField(auto_now=False, auto_now_add=False, **options)
オプションauto_nowをTrueにすると、そのオブジェクトが変更される度に自動的に現在の日付が保存されます。
オプションauto_now_addをTrueにすると、オブジェクトが最初に作成されたときに自動的に現在の日付が保存されます。
オプションauto_nowとauto_now_addは共にデフォルトがFalseです。
これらオプションは、ほぼすべてのテーブルで追加する作成日時フィールド(created_at)と更新日時フィールド(updated_at)で使われます。
DateTimeField:日時
日付と時刻を保存するためのフィールドです。
この日付と時間はdatetime.datetimeインスタンスによって表される日付と時刻になります。
DateTimeField(auto_now=False, auto_now_add=False, **options)
引数のauto_nowとauto_now_addは、DateFieldのそれと同じです
FileField:ファイルアップロード
ファイルをアップロードするためのフィールドです。
FileField(upload_to=None, max_length=100, **options)
FileFieldを使う場合は、MEDIA_ROOTの設定を行う必要があります。
ImageField:画像
画像をアップロードするためのフィールドです。
ImageField(upload_to=None, height_field=None, width_field=None, max_length=100, **options)
ImageFieldは画像アップロード時にチェックを行うため、画像をアップロードする際はFileFieldではなくImageFieldを使いましょう。
次回は、フィールドオプションの共通項について解説