libro
www.tuyano.com
初心者のためのDjango 2.0入門

データベースを使おう! (4/5)

作成:2017-12-30 08:48
更新:2017-12-30 08:48

■Personクラスを作成する

では、簡単なテーブルを利用するモデルクラスを作成しましょう。hello/models.pyの内容を下のリスト欄のように修正して下さい。

ここでは、モデルに用意する項目として以下のような者が用意されています。
name = models.CharField(max_length=100)
mail = models.CharField(max_length=255)
age = models.IntegerField(default=0)
pub_date = models.DateTimeField(auto_now_add=True)

モデルに用意する項目は、このようにクラス内に変数として用意します。それぞれの項目には、models内にあるフィールド設定のためのメソッドを呼び出し設定をします。

CharField――テキストの値のフィールドです。max_lengthで最大文字数を指定できます。
IntegerField――整数値のフィールドです。defaultでデフォルト値を設定しています。
DateTimeField――日時のフィールドです。auto_now_addというのは、作成時に自動的に現在の日時を設定するためのものです。

この他、__str__というメソッドもあります。これは、このPersonクラスのインスタンスがテキスト値として取り出されようとしたとき、出力するテキストの内容をチェックします。ここでは、単純にself.nameの値を返すだけにしてあります。

もう1つの、was_published_recentlyというメソッドは、最近(この1日の間)に作成されたかどうかを表すものです。この2つのメソッドについては、デフォルトで用意しておくものと考えておきましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

from django.db import models

import datetime
from django.utils import timezone

class Person(models.Model):
    name = models.CharField(max_length=100)
    mail = models.CharField(max_length=255)
    age = models.IntegerField(default=0)
    pub_date = models.DateTimeField(auto_now_add=True)
    
    def __str__(self):
        return self.name

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

※関連コンテンツ

「初心者のためのDjango 2.0入門」に戻る