Djangoで、ブログ②のモデルを作る

Python Django

概要

Djangoで、ブログを作るシリーズ②の一つです。ブログで使うモデルを作成していきます。

カテゴリモデルの作成

今回のブログは、一つの記事につき、一つのカテゴリを選択できるタイプです。models.pyに、次のようなモデルを定義しておきます。

from django.db import models


class Category(models.Model):
    name = models.CharField('カテゴリ名', max_length=100)

    def __str__(self):
        return self.name

特に説明する必要もないと思います。カテゴリ名だけを持つモデルです。

記事モデルの作成

次は記事モデルです。このアプリケーションでは、ブログの記事にあたるものをNoteという名前にしています。最初はノートっぽい作りだったんですが、改良してたら普通のブログになりました。

from django.utils import timezone  # 追加


class Note(models.Model):
    title = models.CharField('タイトル', max_length=100)
    thumbnail = models.ImageField('サムネイル')
    category = models.ForeignKey(Category, on_delete=models.PROTECT, verbose_name='カテゴリ')
    text = models.TextField('本文', blank=True)
    is_public = models.BooleanField('公開可能か?', default=True)
    created_at = models.DateTimeField('作成日', default=timezone.now)
    updated_at = models.DateTimeField('更新日', default=timezone.now)

    def __str__(self):
        return self.title

タイトルと記事サムネイル画像、カテゴリ、本文、公開フラグ、作成日、更新日を持っています。ブログにはおなじみの情報ばかりです。私が作るブログでは珍しくサムネ画像の欄があり、しかも必須フィールドになっています。

Django管理サイトへ登録

makemigrations、migrateを行ったら、Django管理サイトで、今作ったモデルを扱えるようにしましょう。admin.pyを開いて、次のようにしておきます。

from django.contrib import admin
from .models import *


admin.site.register(Note)
admin.site.register(Category)

これで、カテゴリや記事の作成が、Django管理サイトで行えるようになりました。

Relation Posts

Comment

記事にコメントする

まだコメントはありません。