Django初心者です。
post_list.htmlファイルの2行目の{{num}}とline 13-15 のif文が成立するときの「夫」などの文字が表示されません。エラーが表示されるのではなく、正常なサイト画面に総記事数:(空欄)や投稿者:(空欄)となりその変数や「夫」などの文字が代入されません。
どのコードが間違っているのでしょうか?
ご教授頂けると幸いです。
Python
1<blog/post_list.html> 2{% block content %} 3総記事数:<p>{{ num }}</p> 4 {% for post in posts %} 5 <div class="post"> 6 <div class="date"> 7 {{ post.published_date }} 8 <div class="column"> 9 <p>コラム:{{ post.id }}</p> 10 </div> 11 <div> 12 <p>投稿者: 13 {% if post.author == "TARO" %}<h3>夫</h3>{% endif %} 14 {% if post.author == "HANAKO" %}<h3>妻</h3>{% endif %} 15 {% if post.author == "ICHIRO" %}<h3>息子</h3>{% endif %} 16 </p> 17 18 </div> 19 </div> 20 <h2><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h2> 21 <p>{{ post.sub_title}}</p> 22 <p>{{ post.text|linebreaksbr }}</p> 23 </div> 24 {% endfor %} 25 <div class="pagination"> 26{% if data.has_previous %} 27 <a href="{% url 'index' %}">«First</a> 28 <a href="{% url 'index' %}{{data.previous_page_number}}">«Prev</a> 29{% endif %} 30 <span class="current"> 31 [{{data.number}}/{{data.paginator.num_pages}}] 32 </span> 33{% if data.has_next %} 34 <a href="{% url 'index' %}{{data.next_page_number }}">Next»</a> 35 <a href="{% url 'index' %}{{data.paginator.num_pages }}">Last»</a> 36{% endif %} 37 </div> 38{% endblock %}
<views.py> from django.contrib.auth.decorators import login_required from django.shortcuts import redirect from django.shortcuts import render from django.utils import timezone from .models import Post from django.shortcuts import render, get_object_or_404 from .forms import PostForm from django.core.paginator import Paginator def post_list(request): posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date').reverse() num = Post.objects.all().count() params = { 'posts' : posts, 'num' : num, } return render(request, 'blog/post_list.html', params)
<models.py> from django.conf import settings from django.db import models from django.utils import timezone class Post(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) title = models.CharField(max_length=200) sub_title = models.CharField(max_length=100) text = models.TextField() created_date = models.DateTimeField(default=timezone.now) published_date = models.DateTimeField(blank=True, null=True) def publish(self): self.published_date = timezone.now() self.save() def __str__(self): return str(self.title + '<' +self.sub_title + '>')
回答1件
あなたの回答
tips
プレビュー