Python | プログラミング学習 Djang.[在庫管理] #04.04.01 ListView

django004.04.01

PythonのWebアプリケーションフレームワーク”Django”について無料で学習します。
今回は”ListView”クラスについて学習します。

“ListView”クラスは継承する事によってモデルクラスのデータをリスト(一覧)形式で表示する事ができます。

準備

※仮想環境”venv”にて進めます。

環境

環境version備考(コマンド)
Rocky Linux8.4cat /etc/redhat-release
Python3.6.8python -V
Django3.2django-admin –version

開発

urls

path("", views.Index.as_view(), name="index"),
orderPro/orderApp/urls.py
from django.urls import path

# view.pyをインポート
from . import views

# アプリ名を定義
app_name = "App"

# path(呼び出しアドレス, viewの呼び出す関数, path名)
urlpatterns = [
    path("", views.Index.as_view(), name="index"),
]

views

ListViewクラスを継承します。

models.userTradeクラスを登録します。

model = models.userTrade
orderPro/orderApp/views.py
from django.shortcuts import render
from django.http import HttpResponse
from django.views.generic import ListView

from . import models

# 受注一覧
class Index(ListView):
    model = models.userTrade

    # レコード情報をテンプレートに渡すオブジェクト
    context_object_name = "user_list"

    # テンプレートファイル連携
    template_name = "AppHTML/index.html"

Template

モデルから渡したオブジェクトをfor文で1レコードずつ取得する

{% for userlist in user_list %}

取得したレコードのフィールドを表示する。

{{ userlist.name }}
orderPro/Template/AppHTML/index.html
{% extends "AppHTML/header.html" %}

{% block content_block %}

<h2>受注一覧</h2>
<table class="table">
  <thead>
    <tr>
        <th>ユーザー名</th>
        <th>受注参照</th>
        <th><a href="{% url 'userTradeCreate' %}">ユーザー新規登録</a></th>
        <th></th>
        <th></th>
    </tr>
  </thead>
  <tbody>
    {% for userlist in user_list %}
    <tr>
        <td>{{ userlist.name }}</td>
    </tr>
    {% endfor %}
  </tbody>
</table>

<div class="container">
  <br>
</div>
{% endblock %}

タイトルとURLをコピーしました