前回のサンプルに対して、ちょっと変更をしてみる。
前回は、1レコードに、名前と投稿の2データがある。
一覧画面
編集画面
これに、メールアドレスを追加して、1レコードに3つのデータにしてみようと思う。
フォルダコピー
前回記事で行った、
sample_appフォルダをコピーして、
sample_app2 フォルダを作る。
エラーは、前回記事で書いたように直して、
エラーなく、立ち上がるようになった。
ここからは、sample_app2 について、修正を行っていく。
コードの修正
models.py と views.pyを修正する。
models.py
まずModelを変更。
models.py (変更前)
from django.db import models
# Create your models here.
class Post(models.Model):
name = models.CharField('名前', max_length=15)
micropost = models.CharField('投稿', max_length=140, blank=True)
def __str__(self):
return self.name
以下の行を追加します。
address = models.CharField('アドレス', max_length=140, blank=True)
変更後のコード
models.py (変更後)
from django.db import models
# Create your models here.
class Post(models.Model):
name = models.CharField('名前', max_length=15)
micropost = models.CharField('投稿', max_length=140, blank=True)
address = models.CharField('アドレス', max_length=140, blank=True)
def __str__(self):
return self.name
views.py
views.py の一番下で定義されている、
views.py (変更前)
(これより上のコードは省略)
class PostForm(ModelForm):
"""
フォーム定義
"""
class Meta:
model = Post
# fields は models.py で定義している変数名
fields = ('name', 'micropost')
この fields を変更して、
fields = ('name', 'micropost')
下記のようにする。
fields = ('name', 'micropost', 'address')
views.py (変更後)
(これより上のコードは省略)
class PostForm(ModelForm):
"""
フォーム定義
"""
class Meta:
model = Post
# fields は models.py で定義している変数名
fields = ('name', 'micropost', 'address')
model を修正したのでコマンド実行する。
models.py を修正したので、コマンドを実行して、DBに変更を反映させる必要があるようです。
Djangoを学習している駆け出しエンジニアの方でDB周りに躓く場合、
まずはmodels.pyを修正
python manage.py makemigrations
python manage.py migrate
上記順番で実施すればいいんだなぁってことを頭に入れておくのが良いと思います。
ということで、以下のコマンドを実行しました。
python manage.py makemigrations
python manage.py migrate
結果
アドレスという項目を増やす事ができました!