【发布时间】:2018-04-14 22:44:20
【问题描述】:
我正在我的网站上添加分页。这是我的功能:
views.py
def ProductList(request, category_slug=None, page_number=1):
content = {}
category = None
categories = Category.objects.all()
products = Product.objects.filter(available=True)
if category_slug:
category = get_object_or_404(Category, slug=category_slug)
products = products.filter(category=category)
current_page = Paginator(products, 2)
content['category'] = category
content['categories'] = categories
content['products'] = current_page.page(page_number)
return render(request, 'product/list.html', content)
urls.py
urlpatterns = [
url(r'^$', views.ProductList, name='ProductList'),
url(r'^page/(\d+)/$', views.ProductList, name='ProductList'),
url(r'^(?P<category_slug>[-\w]+)/$', views.ProductList, name='ProductListByCategory'),
url(r'^(?P<id>\d+)/(?P<slug>[-\w]+)/$', views.ProductDetail, name='ProductDetail'),
]
但每次我尝试获取下一页时,我都会看到此错误:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/page/2/
Raised by: shop.views.ProductList
我真的不明白我做错了什么。谢谢。
【问题讨论】:
-
请显示您的其余网址。此代码引发的唯一 404 位于 category_slug 块中,因此您的页面参数似乎被解释为类别。
-
这是我的完整网址:urlpatterns = [ url(r'^$', views.ProductList, name='ProductList'), url(r'^page/(\d+)/$' , views.ProductList, name='ProductList'), url(r'^(?P
[-\w]+)/$', views.ProductList, name='ProductListByCategory'), url(r'^ (?P \d+)/(?P [-\w]+)/$', views.ProductDetail, name='ProductDetail'), ]
标签: python django pagination