Python | Django | class-based viewsで作成した一覧画面の更新

2021年8月22日

公開日:2021/8/22

Pythonには,DjangoというWebアプリケーションフレームワークがある.フレームワークのため,Djangoを利用するとWebアプリを通常よりも短時間で開発することが可能になる.

class-based viewsは,viewsを実装する手段の1つであり,関数の代わりにPythonのオブジェクトとしてviewsを定義する.viewsの作成とデータの追加・更新・削除が容易になる.

前記事では,「class-based viewsのDeleteViewの使い方」を作成した.前記事での設定をそのまま引き継いだ上で,本記事では,「class-based viewsで作成した一覧画面の更新」を以下に記す.

◆実施環境

Python 3.8.8
Django 3.2.3
VS Code 1.59.0

■class-based viewsで作成した一覧画面の更新

現状,"list_medicines"ページは以下画面のように薬品リストの一覧になっている.当該ページを見やすいように変更していく.

“temmplates/medicine_list.html"を以下のように編集する.

<p><a href="{% url 'ec_site:insert_medicine' %}">insert medicine</a></p>
<table>
  <tbody>
  {% for object in object_list %}
  <tr>
    <td>Name: <a href="{{ object.get_absolute_url }}">{{ object.name }}</a></td>
    <td>Price: {{ object.price }}円</td>
    <td><a href="{% url 'ec_site:update_medicine' object.id %}">edit</a></td>
    <td><a href="{% url 'ec_site:delete_medicine' object.id %}">delete</a></td>
  </tr>
  {% endfor %}
  </tbody>
</table>

VS Codeの"View"を開き,"Terminal"をクリックする.クリックするとVS Codeの下部にターミナルが開くので,”conda activate 仮想環境名”を実行し,仮想環境に移行する(移行方法の詳細はこちら).その後,ターミナルで"cd class_based_view"を入力し,ディレクトリを変更する.変更後,以下のように”python manage.py runserver”を実行する.以下が出力される.

(djangoenv) C:\Users\shiro\Desktop\210517_python development\myclassbasedviewtest\class_based_view
>python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced). # 以下出力箇所
August 22, 2021 - 14:41:58
Django version 3.2.3, using settings 'class_based_view.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

上記の"http://127.0.0.1:8000/"をクリックすると,ブラウザが開き,以下画面が出力される.

ブラウザのURLに"http://127.0.0.1:8000/ec_site/list_medicines"を入力すると,"list_medicines"の一覧ページに遷移する.以下のように見やすくなった.

続けて,以下赤枠の薬品(Xanax)の編集と削除を実施する.赤枠の"edit"をクリックする.

以下画面に遷移するので,以下のように更新して"update"をクリックする.

以下画面のように更新が完了する.

“list_medicines"の一覧ページに遷移すると,赤枠の表記(name, price)が更新された.次は,"delete"をクリックする.

以下画面に遷移する."delete"をクリックする.

“list_medicines"の一覧ページに遷移すると,対象の薬品(Xanax)が削除されたことが分かる.

以上