はじめに
ここでは、Djangoのモデルの基本について解説します。
models.pyの設定
from django.db import models
class SampleModel(models.Model):
# id = models.AutoField(primary_key=True)
char_sample = models.CharField(max_length=200)
char_with_null = models.CharField(max_length=10, blank=True, null=True)
char_options = models.CharField(choices=(('one', 1), ('two', 2)))
text_sample = models.TextField()
bool_sample = models.BooleanField(default=False)
datetime_created = models.DateTimeField(auto_now_add=True)
datetime_updated = models.DateTimeField(auto_now=True)
date_sample = models.DateField()
def __str__(self):
return self.char_sample
Primary key
primary keyは明示しなくても、自動的に設定されます。
ビューなどでは、pkなどといった形で参照することができます。
CharField
文字を入力するフィールドです。HTMLタグでは<input type="text">に対応します。
max_length(最大文字数)は必ず明示する必要があります。
また、blank=Trueとすると、バリデーション時にblankを許容し、null=Trueとすると、データ登録時にnullが許容されます。
blank=やnull=は、他のフィールドでも使うことができます。
TextField
こちらも文字を入力するフィールドです。HTMLタグでは<textarea>に対応するもので、大量の文字も入力することができます。
BooleanField
真偽値を受け付けるフィールドです。
default=Falseとすると、データ登録時に指定がなかった場合はFalseとして扱われます。
default=は他のフィールドでも使うことができます。
DateTimeField
日時を入力するフィールドです。
auto_now_add=Trueとすると、最初の1回だけそのタイミングの日時を登録し、その後は更新されません。
auto_now=Trueとすると、登録タイミングの日時が自動的に更新されます。
DateField
日付を入力するフィールドです。
__str()__関数
最後の__str__関数は、管理画面でモデルを参照するときに、レコードの名前をprimary keyではなく、指定したフィールドをタイトルとして参照するために書いています。
admin.pyの設定
from django.contrib import admin
from .models import SampleModel
admin.site.register(SampleModel)
管理画面でモデルを参照するために、admin.site.register(モデル名)を追記します。
まとめ
ここでは、モデル関連の設定について解説しました。
次回は、ビュー関係について解説する予定です。