演習課題「記事一覧ページを作成する」
右の環境には、「myblog」プロジェクトに「news」というアプリケーションが作成してあります。また、プロジェクトとnewsアプリのルーティングは、以下のアクセスが可能になるよう設定してあります。
news/
views.pyを修正して、クラスベースの汎用ビューで記事一覧を作成してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#05:お店一覧ページを作ろう
ここでは、Lunchmapアプリのお店一覧ページを作ります。クラスベース汎用ビューを使って、登録しておいたサンプルデータを一覧表示しましょう。
myapp/myapp/urls.pyfrom django.contrib import admin
from django.urls import path, include
from django.views.generic import RedirectView
urlpatterns = [
path('lunchmap/', include('lunchmap.urls')),
path('admin/', admin.site.urls),
path('', RedirectView.as_view(url='/lunchmap/')),
]
myapp/lunchmap/urls.pyfrom django.urls import path
from . import views
app_name = 'lunchmap'
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
]
myapp/lunchmap/views.pyfrom django.urls import reverse_lazy
from django.views import generic
from .models import Category, Shop
class IndexView(generic.ListView):
model = Shop
myapp/lunchmap/templates/lunchmap/shop_list.html<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Lunchmap</title>
<style>body {padding: 10px;}</style>
</head>
<body>
<h1>お店一覧</h1>
{% for shop in object_list %}
<p> {{ shop.category.name }}, {{ shop.name }}</p>
{% endfor %}
</body>
</html>
- Djangoメモ(31) : クラスベース汎用ビューのListViewで一覧表示とページネーション - もた日記
https://wonderwall.hatenablog.com/entry/2018/03/31/001500
- Django の CRUD ジェネリックビュー (ListView, DetailView, CreateView, UpdateView, DeleteView) の簡単な使い方
https://tech.torico-corp.com/blog/django-crud-generic-view/