たくさん寝太郎の寝床

料理とITと皿回しが好きなオタクのブログ

注文アプリ作る話 part.2

こんにちは、たくさん寝太郎です。

最近全く眠れず、酒を飲んで23時ごろに寝ても3時くらいに目が覚めます。しかも二度寝したいのに眠気が来ないのが辛い。異動などのストレスが原因のような気がしますが早く治って欲しいですね(病院に行けといった話)

そういえば大学院生の時もストレスが酷くて眠れず、GABAに頼っていたのを思い出しました。プラシーボかもしれませんが、だいぶ効くのでオススメです。

さて、今朝も早起きしてやることが無いので先日記事にした注文アプリのpart.2を書こうと思います。


kaworu-mk6.hatenablog.com前回の記事ではtopページとドリンクメニューを作りました。今回は注文管理テーブルを作ってオーダーを登録する処理を追加します。

DB設計

スキーマを考える

関係スキーマを詳しく考えるのは後にするとして、とりあえず以下のような感じでいけそうです。

models.pyに登録する(メニューテーブル)

まずメニューテーブルを作ります。先ほど考えたスキーマを参考にして、Menuアプリ下のmodels.pyに以下のように記述します。
とりあえずFieldは適当に設定してます。

from django.db import models

# Create your models here.
class MenuTable(models.Model):
    menu_id = models.CharField(max_length=8)
    menu_name = models.CharField(max_length=64)
    FD_class = models.CharField(max_length=1, choices=(('F', 'Food'), ('D', 'Drink')))
    price = models.IntegerField()

    def __str__(self):
        return self.menu_name

adminサイトからメニューを登録できるように、admin.pyにMenuTableを追加します。

from django.contrib import admin
from .models import MenuTable

# Register your models here.
class MenuTableAdmin(admin.ModelAdmin):
    pass

admin.site.register(MenuTable, MenuTableAdmin)

あとはmigrateして終わりです。

python manage.py makemigrations
python manage.py migrate

adminサイトにメニューテーブルが追加され、メニューを登録できるようになりました。

models.pyに登録する(注文管理テーブル)

メニューテーブルと同じことを注文管理テーブルでもやります。
書いてる途中で提供済判定を持たせるのを忘れていました。今度追加します。


part.3の課題

migrate周りで色々ハマってたら2時間経ってました。疲れたのでアプリからメニュー選択してテーブルに登録する処理はpart.3で書こうと思います。


おわり