0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Django] サンプルにちょっとだけ手を加える

Posted at

前回のサンプルに対して、ちょっと変更をしてみる。

前回は、1レコードに、名前と投稿の2データがある。

一覧画面

1.PNG

編集画面

2.PNG

これに、メールアドレスを追加して、1レコードに3つのデータにしてみようと思う。

フォルダコピー

前回記事で行った、

sample_appフォルダをコピーして、
sample_app2 フォルダを作る。

エラーは、前回記事で書いたように直して、
エラーなく、立ち上がるようになった。

10.PNG

ここからは、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

結果

アドレスという項目を増やす事ができました!

一覧画面 (変更後)

11.PNG

編集画面(変更後)

12.PNG

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?