DjangoでListViewを試してみる
DjangoでListViewを試してみる
ListViewを作成。
テンプレート名はデフォルトで「template_name = 'モデル名_list.html'」が指定される。
$ vi books/views.py
from django.views.generic import ListView from .models import Book class BookList(ListView): model = Book
urls。
$ vi books/urls.py
・・・ urlpatterns = [ path('', views.BookList.as_view(), name='book_list'), ]
テンプレートの置き場を作成し、
$ mkdir books/templates $ mkdir books/templates/books
テンプレートを作成。
$ vi books/templates/books/book_list.html
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> {% for book in object_list %} {{ book.title }}({{ book.price }}円)<br> {% endfor %} </body> </html>
Djangoを起動すると、
$ python3 manage.py runserver 0.0.0.0:8000
下記のような感じで表示される。
querysetを指定して、好みの検索結果を表示することもできる。
$ vi books/views.py
・・・ class BookList(ListView): model = Book queryset = Book.objects.filter(price__gt=3000).order_by('-price')