Django

DjangoでModelの作成

Modelの作成

Djangoは最近の主流であるコードファーストでDBを作成します。

polls/models.py


from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

 

テーブルの内容をクラスで表現します。
以下のモデルのフィールドリファレンスが参考になります。

https://qiita.com/nachashin/items/f768f0d437e0042dd4b3

モデルの作成が終わったら、pollsアプリケーションをプロジェクトに追加します。

アプリケーションの追加

pollsアプリケーションを作成時に polls/apps.pyが作成されています。

apps.pyに変数:PollsConfigがあらかじめ設定されているのでこのPollsConfigを参照できるようにします。

mysite/settings.pyに以下の記述を追加します。

mysite/settings.py


INSTALLED_APPS = [
    'polls.apps.PollsConfig', #ここを追加
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

 

これでプロジェクトに含まれるアプリケーションとして認識されます。

モデルのマイグレーション

以下のコマンドでモデルのマイグレーションを実施します。

マイグレーションはDB設計が変更(モデルの変更)されたタイミングで実施します。

makemigrationsはmigrateするためのファイルを作成します。

python manage.py makemigrations polls

python manage.py migrate