演習課題「データベースのモデルを作成する」
右の環境には、「myblog」プロジェクトに「news」というアプリケーションが作成してあります。
この「news」アプリに、以下の項目を持つ「Category」と「Article」というモデルを作成して、マイグレーションをしてください。
- Categoryモデル
- name : 文字列 最大255文字
- author : 外部キー('auth.User'), on_delete=models.CASCADE
- created_at : 日時, auto_now_add=True
- updated_at : 日時, auto_now=True
- Article
- name : 文字列 最大255文字
- content : 文字列 最大255文字
- author : 外部キー('auth.User'), on_delete=models.CASCADE
- category : 外部キー('Category'), on_delete=models.PROTECT
- created_at : 日時, auto_now_add=True
- updated_at : 日時, auto_now=True
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#03:データベースのモデルを作成しよう
ここでは、ランチマップアプリのデータベースを準備します。そのために、ShopとCategoryのモデルを作成して、マイグレーションでデータベースに適用しましょう。
phpMyAdminで、lunchmapdbを作成しておく。
myapp/myapp/settings.py# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql',
'NAME': 'lunchmapdb',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
myapp/lunchmap/models.pyfrom django.db import models
class Category(models.Model):
name = models.CharField(max_length=255)
author = models.ForeignKey(
'auth.User',
on_delete=models.CASCADE,
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class Shop(models.Model):
name = models.CharField(max_length=255)
address = models.CharField(max_length=255)
author = models.ForeignKey(
'auth.User',
on_delete=models.CASCADE,
)
category = models.ForeignKey(
Category,
on_delete=models.PROTECT,
)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
$ python manage.py makemigrations lunchmap
$ python manage.py migrate
- Django
https://www.djangoproject.com/
- Django ドキュメント | Django documentation | Django
https://docs.djangoproject.com/ja/2.0/
- Home | djangoproject.jp
http://djangoproject.jp/
- Djangoウェブフレームワーク (Python) - ウェブ開発を学ぶ | MDN
https://developer.mozilla.org/ja/docs/Learn/Server-side/Django
- ★ Djangoでの開発 ダイジェスト - Qiita
https://qiita.com/zaburo/items/0e15f6c150caa13ca34c
- Django入門: 初心者でも10分でWebサービスを作れる!PythonフレームワークDjangoとPaizaCloudの使い方 - paiza開発日誌
https://paiza.hatenablog.com/entry/2018/02/28/paizacloud_django