SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
東南アジアをバックパッカーしながら転職活動をした記録
東南アジアをバックパッカーしながら転職活動をした記録
7年目で初の転職活動 2カ月で内定獲得した記録
7年目で初の転職活動 2カ月で内定獲得した記録
おすすめのプログラミングスクール めざせ就職・年収アップ!
おすすめのプログラミングスクール めざせ就職・年収アップ!
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
ブログ開始3年が経った月収が1万超えてた!
ブログ開始3年が経った月収が1万超えてた!
プログラミング独学・スクール・就職(目次)
プログラミング独学・スクール・就職(目次)
previous arrowprevious arrow
next arrownext arrow
 
Shadow
Django

Django独学 DBに列を追加してWEBアプリに表示

Djangoのユーザ管理アプリ作成の目次ページはこちらです。

Djangoでユーザ管理アプリ デモ動画とソースコード公開 Djangoのユーザ管理アプリ作成の目次ページはこちらです。 Djangoでユーザ管理アプリの作ったので、ソースコ...

 

今回はDBに列を追加して、追加した列を表示させます。

UdemyのDjangoの基礎をマスターして、3つのアプリを作ろう!を参考に勉強していています。

Djangoで追加する機能の概要

ユーザの詳細ページに自己紹介を表示させます。

データベースに自己紹介の列がないので、列追加から行います。

Models.pyから列を追加

データベースの定義を決めて作成したのは、models.pyのファイルでした。

なので、今回もModels.pyに追記をします。

内容は以下の通りです。

from django.db import models

# Create your models here.
#ユーザ情報のDB情報
class UserInfo(models.Model):
    userName = models.CharField(max_length=200)
    country = models.CharField(max_length=50, null=True)
    sex = models.CharField(max_length=200, null=True)
    address = models.CharField(max_length=200, null=True)
     
    #自己紹介列を追加
    selfIntroduction = models.CharField(max_length=500, null=True)

自己紹介の列を追加します。

その後、マイグレーションファイルを作成し、DBへ反映します。

マイグレーションファイルを作成
cd C:\django\myproject
python manage.py makemigrations myapp

マイグレーションファイルからDBへ反映
python manage.py migrate

これでDBに自己紹介の列が追加されました。

今回はDBに自己紹介を直接登録します。

今はユーザ情報をメンテナンスる機能はないためです。

python manage.py makemigrations myapp

を行うと、C:\django\myproject\myapp\migrationsの中に

「0002_userinfo_selfintroduction.py」ができます。

ここには列追加をする情報がかかれています。

detail.htmlを修正して、自己紹介列を表示させる

detail.htmlを修正して、自己紹介列を表示できるように修正していきます。

    <!-- テーブル -->
    <table>
        <tbody>
            <tr>
                <!-- 5列分ユーザ情報を出力 -->
                <td>ID:{{userinfoDetail.id}}           <br>
                    名前:{{userinfoDetail.userName}}   <br>
                    出身国:{{userinfoDetail.country}}  <br>
                    住所:{{userinfoDetail.address}}    <br>
                    性別:{{userinfoDetail.sex}}        <br>
                    <!-- 自己紹介列を追加 -->
                    自己紹介:{{userinfoDetail.selfIntroduction}}
                </td>
            </tr>
        </tbody>
    </table>

12行目で追加した自己紹介列を表示させています。

結果はこんな感じです。

views.pyデータを抽出する箇所は修正不要です。

userinfoDetail = get_object_or_404(UserInfo,pk=id)

上記ですべての列の情報を抽出して、detail.htmlに渡しているいるからです。

そのため、増えた列を表示する修正をhtml側に行えばOKなのです。

少し発展編:DB登録した改行をHTML側でも反映させる

先ほどの表示結果、実はDBに登録した改行が反映されていません。

本当は以下のように登録されています。

ゆいです。
プログラミングスクールに行くか迷っています!
情報を下さい!

DBに登録されている改行コードはHTMLの<br>ではないためです。

対応方法としては、{{変数|linebreaksbr}}とするだけです。

<!-- 自己紹介列を追加 -->
自己紹介:{{userinfoDetail.selfIntroduction|linebreaksbr}}

表示結果を見てみると上手く改行されました。

改行が含まれるデータを扱うことがある場合は、覚えておいてください。

独学にはないプログラミングスクールの価値を実体験から解説 「お金がかかるプログラミングスクールではなく独学ではダメかな?」 「プログラミングスクールのどういう所がいいのかなぁ?」...
ABOUT ME
LooseCarrot
LooseCarrot
ブログ運営をしているLooseCarrotです。 興味のあることにトライして発信していきます! プロフィール

関連している記事