LoginSignup
2
2

More than 5 years have passed since last update.

Django Webアプリ作成(4) モデル作成

Posted at

環境
OS : macOS Mojave
Anaconda : python3.6.7
Django==2.1.5

今回の目標

アプリの中身の最重要部分"モデル"の作成

モデルとは

簡単に言うと、"データベースのデータの集合"
データベースにデータを格納しておいて状況に応じて取り出すイメージ

必要なデータは...

今回のアプリは、ブログということで当然タイトルと内容(テキスト)は必要でしょう。
その他、筆者と作成日時と更新日時を要素(データ)としよう!

models.py

models.py内にPostクラスを作成

blog/models.py
from django.db import models
from django.utils import timezone

class Post(models.Model):
    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(
            blank=True, null=True)

    def publish(self):
        self.published_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

データベースの作成と追加

データベースの作成

Terminal
python manage.py makemigrations

データベースの追加

Terminal
python manage.py migrate

管理者ページ(Django admin)の作成

blog/admin.pyに作ったモデルクラスを登録

blog/admin.py
from django.contrib import admin
from .models import Post
# Register your models here.
admin.site.register(Post)

スーパーユーザーの作成

管理者サイトにログインできるスパーユーザーを作成する。

Terminal
python manage.py createsuperuser

管理者ページにログインして記事を投稿

開発サーバを起動

Terminal
python manage.py runserver

ブラウザでアクセス

ブラウザ
http://127.0.0.1:8000/admin

先程登録したユーザー、パスワードでログイン
無事ログインできましたか?
3つほど記事を投稿してみましょう!

次回はWebサイトのページを作っていきます!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2