blog/view.py변경전
from django.shortcuts import renderfrom .models import Postdef index(request): # Post의 내용들을 전부 다 가져온다. posts = Post.objects.all() return render( request, # 템블릿이 되는 html 코드를 작성할 필요가 있다. 'blog/index.html', # index.html에서 사용하도록 객체를 넘겨주고 있다. # template에 전해주고 싶은 것들을 적어주면 된다. { 'posts': posts, } )
변경후
from django.shortcuts import renderfrom .models import Postfrom django.views.generic import ListView# Create your views here.class PostList(ListView): model = Post
blog/urls.py
urlpatterns = [ path('', views.index),]
urlpatterns = [ path('', views.PostList.as_view()),]
blog/templates/blog/post_list.html 생성
<!DOCTYPE html><html lang="ko"> <head> <meta charset="UTF-8" /> <title>Blog</title> </head> <body> <h1>Blog</h1> <!-- 포스트의 모든 게시물들을 하나씩 가져온다. --> {% for p in object_list %} <!-- 제목 --> <h3>{{p.title}}</h3> <!-- 작성일과 작성자 --> <h4>{{p.created}} by {{p.author}}</h4> <!-- 내용 --> <p>{{p.content}}</p> {%endfor%} </body></html>