前回、Djangoでモデル(データベース定義?)を作成して、マイグレーションを行いました。
余談ですが、マイグレーションていうのはマッピングと同じような意味合いですかね?
カタカナ言葉が多すぎてよくわかりません。
www.te-tou.tokyo
作成したテーブルに画面から入力テストをしてみました。
admin画面作成
ログインを兼ねた、管理画面を作ります。
admin.pyというファイルを探して、インポート含めて2行書けば画面が出来上がります。
from django.contrib import admin from shinsa.models import Testee # Register your models here. admin.site.register(Testee)
superUser作成
ログイン画面だけ作ってもログイン出来ないので、ターミナルからコマンドでユーザーを作成します。
プロジェクトフォルダに移動して、ちゃんとactivateしてから下記のコマンドを打ちます。
(アクティベートの参考記事)
www.te-tou.tokyo
> manage.py createsuperuser
表示に従って、名前とかパスワードを入れます。(メールアドレスは特に必要ないらしい)
これで、ログインできるようになりました。
テスト入力
サーバーを起動します。
(サーバー起動参考記事)
www.te-tou.tokyo
先ほどのユーザーIDとパスワードでログインして、
admin画面です。
いい感じ。
で、試しに入力してみると。
「受審者」という項目は上手く出来ています。
しかし、「段位」としたかった箇所が「grade_id」。しかも、一桁でいいのに無限(integer分?)に桁数入力が出来てしまいます。
単純に設計ミスですね。
ざっくり命取りです。
元はのソースコードは、
from django.db import models # Create your models here. # 受審者テーブル class Testee(models.Model): # testee_id = models.IntegerField() testee_name = models.CharField( max_length=30, verbose_name='受審者' ) grade_id = models.IntegerField()
そりゃそうだわ。ってくらいの感じです。
相手が新人なら、そこそこネチネチ説教するレベルのポカしです。
ソースコード修正。
from django.db import models # Create your models here. # 受審者テーブル class Testee(models.Model): GRADE_CHOICES = ( (1, "初段"), (2, "二段"), (3, "三段"), (4, "四段"), (5, "五段"), (6, "六段"), (7, "練士"), (8, "七段"), (9, "教士"), ) # testee_id = models.IntegerField() testee_name = models.CharField( max_length=30, verbose_name='受審者' ) grade_id = models.CharField( max_length=4, verbose_name='段位', choices=GRADE_CHOICES )
段位をリストから選択できるようにしてみました。
当初の設計思想からはやや外れてきましたが、まあいいかと。SE失格の判断ですが、気楽にやります。
結果。
上手く動きました。
もはやSQLの知識要らずレベルで簡単に作成出来ます。