演習課題「データベースのモデルを作成する」
右の環境には、「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