その2
タイトルや本文を表示させよう。
views.py
blog/vies.py
from django.shortcuts import render
from django.utils import timezone
from .models import Post
def post_list(request):
posts = Post.objects.all()
return render(request, 'blog/post_list.html', {
'posts': posts
})
post_list.html
post_list.html
<html>
<head>
<title>my blog</title>
</head>
<body>
{% for post in posts %}
<div>
<p>date: {{ post.created_date }}</p>
<h1><a href="">title: {{ post.title }}</a></h1>
<p>{{ post.text|linebreaksbr }}</p>
<hr>
</div>
{% endfor %}
</body>
</html>
created_dateが新しい順に並んでいる秘訣は、
models.pyで class Meta:を設定しているからです。
また、|linebreaksbrは、改行を表示させるという意味です。
pythonでは改行は\n
ですが、html表示は<br>
になるので、その変換処理を行なっているということになります。
フィルタの一覧は以下参照。
Django: 組み込みタグとフィルタの一覧