こちらの
https://qlitre-weblog.com/django-kakeibo-search-pagination/
サイトのページネーションの手順通りにコードを打ち込み
django のページネーションを試みたのですが、上手くWebページ上に表示されず、空白のままになってしまっています。
どうすれば、ページネーションを上手く動作させられるのかお教えいただけますと幸いです。
ご教授いただけますと幸いです。
よろしくお願いいたします。
以下に、現在のアプリのディレクトリ構造とコードを記載しておきます。
kakeibo
├── init.py
├── pycache
├── admin.py
├── apps.py
├── forms.py
├── migrations
│ ├── 0001_initial.py
│ ├── init.py
│ └── pycache
├── models.py
├── static
├── templates
│ └── kakeibo
│ ├── base.html
│ └── payment_list.html
├── templatetags
│ ├── pycache
│ └── kakeibo.py
├── tests.py
├── urls.py
└── views.py
kakeibo/views.py
1from django.views.generic import ListView 2from django.shortcuts import render 3from .models import Payment 4from .forms import PaymentSearchForm 5 6# Create your views here. 7 8class PaymentList(ListView): 9 template_name = "kakeibo/payment_list.html" 10 model = Payment 11 ordering = "-date" 12 pagenate_by = 10 13 14 def get_queryset(self): 15 ・・・ 16 return queryset 17 18 def get_context_data(self, **kwargs): 19 context = super().get_context_data(**kwargs) 20 # search formを渡す 21 context['search_form'] = self.form 22 23 return context
kakeibo/models.py
1from django.db import models 2 3# Create your models here. 4 5 6#カテゴリ名を保存するためのモデル 7class PaymentCategory(models.Model): 8 name = models.CharField("カテゴリ名", max_length=32) 9 10 def __str__(self): 11 return self.name 12 13class Payment(models.Model): 14 date = models.DateField("日付") 15 price = models.IntegerField("金額") 16 category = models.ForeignKey(PaymentCategory, 17 on_delete=models.PROTECT, 18 verbose_name="カテゴリ") 19 description = models.TextField('摘要', null=True, blank=True)
kakeibo/templates/kakeibo/payment_list.html
1{% extends "kakeibo/base.html" %} 2{% load humanize %} 3{% load kakeibo %} 4{% block content %} 5 6<div class="mt-5"> 7 <!--一つ前--> 8 {% if page_obj.has_previous %} 9 <a class="mr-2 prev" href="?{% url_replace request 'page' page_obj.precious_page_number %}" title="前ページへ">前へ</a> 10 {% endif %} 11 12 <!--nページ目/トータルページ数--> 13 <span style="color:#0d1a3c"> 14 {{ page_obj.number }} / {{ page_obj.paginator.num_pages }} 15 </span> 16 17 <!--一つ後--> 18 {% if page_obj.has_previous %} 19 <a class="mr-2 next" href="?{% url_replace request 'page' page_obj.next_page_number %}" title="次ページへ">次へ</a> 20 {% endif %} 21</div> 22 23{% endblock %} 24
kakeibo/templatetags/kakeibo.py
1 2from django.template import Library 3 4register = Library() 5 6@register.simple_tag 7def url_replace(request, field, value): 8 url_dict = request.GET.copy() 9 url_dict[field] = str(value) 10 return url_dict.urlencode()
回答1件
あなたの回答
tips
プレビュー