django 中的分页器 url 错误

问题描述

我正在尝试为我的文章 django 页面制作分页器。但是当我尝试转到下一页时,出现错误(“找不到页面”和“没有文章与给定的查询匹配。”)并且我不知道我做错了什么。我感谢您的帮助... ########### 我的views.py:

from django.core.paginator import Paginator
from django.shortcuts import render,get_object_or_404
from django.http import HttpResponse,JsonResponse,Http404
from .models import Article,Category


# Create your views here.
def home(request):
context = {
    "articles": Article.objects.published()
}
return render(request,'website/home.html',context)


def detail(request,slug):
context = {
    "article": get_object_or_404(Article.objects.published(),slug=slug)
}
return render(request,'website/detail.html',context)


def article(request,page=1):
articles_list = Article.objects.published()
paginator = Paginator(articles_list,2)
articles = paginator.get_page(page)
context = {
    "articles": articles,"category": Category.objects.filter(status=True)
}
return render(request,'website/article.html',context)


def category(request,slug):
cat = get_object_or_404(Category,slug=slug,status=True)
context = {
    "category": cat.articles.filter(status='Published')
}
return render(request,'website/category.html',context)

####### 我的 urls.py

from django.urls import path
from .views import home,detail,article,category

app_name = 'website'
urlpatterns = [
path('',home,name='home'),path('article/<slug:slug>',name='detail'),path('article',name='article'),path('article/<int:page>',path('category/<slug:slug>',category,name='category')
]

article.html 页面的相关部分:

  <div class="blog-pagination">
          <ul class="justify-content-center">
            {% if articles.has_prevIoUs %}
              <li class="disabled"><a>
                  href="{% url 'website:article' articles.prevIoUs_page_number %}"
                  <i class="icofont-rounded-left"
                     ></i></a></li>
            {% endif %}
            <li><a href="#">1</a></li>
            <li class="#"><a href="#">2</a></li>
            <li><a href="#">3</a></li>
            {% if articles.has_next %}
          <li><a href="{% url 'website:article' articles.next_page_number %}">
              <i class="icofont-rounded-right"
                 ></i></a></li>
          {% endif %}
          </ul>
        </div>

解决方法

一个接一个地检查Ulrs

path('article/<slug:slug>',detail,name='detail'),

已使用,请尝试将其替换为

path('article/<int:page>',article,name='article'),

我的意思是 int 应该排在 urlpaterns 列表的第一位

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...