我正在创建一个博客并尝试在帖子列表页面上进行分页操作。当我运行我的应用时,我的网址包含意外字符。例如;
http://127.0.0.1:8000/blog/%5E$
我无法理解为什么%5E$
存在。
我的 urls.py (这是在blogapp中):
from django.urls import path,include
from django.contrib import admin
from . import views
urlpatterns = [
path(r'^$',views.getPosts,name="bloghome"),
path(r'^(?P<selected_page>\d+)/?$',views.getPosts,name="bloghome"),
path('<slug>',views.postDetailPage,name="post_detail")
]
views.py 中的getPost函数
def getPosts(request,selected_page=1):
# latest_post = Posts.objects.get(id=1)
posts = Posts.objects.all().order_by('-pub_date')
pages = Paginator(posts,5) #Show 5 post per page
try:
returned_page = pages.page(selected_page)
except EmptyPage:
returned_page = pages.page(pages.num_pages)
#content = pages.page(selected_page)
return render(request,'blog.html',{'page':returned_page,
'posts':returned_page.object_list
})
最后,正在使用<a>
标记在主页上输入此博客列表页面。这是一行代码:
<a href="{% url 'bloghome'%}">Blog</a>
答案 0 :(得分:0)
根据https://docs.djangoproject.com/en/dev/ref/urls/#django.urls.path,您需要使用re_path()
代替path()
,因为它根据zvadym的先前评论从字面上解释^$
。这是Django 2.0中的新功能,因此它取决于您的版本。