【发布时间】:2016-12-11 10:43:10
【问题描述】:
如何在 django 的模板中使用 href 标签正确路由页面? 我的 urls.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', views.home_page, name='home_page'),
url(r'^post/', include('blog.urls')),
url(r'^post/(?P<slug>[-\w]+)/$', views.single_post, name='post'),
url(r'^about/', views.about_page, name='about_page'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
views.py
def home_page(request):
posts = Post.objects.filter(publish_date__lte=timezone.now()).order_by('publish_date').reverse()
paginator = Paginator(posts, 6)
page = request.GET.get('page')
try:
posts = paginator.page(page)
except PageNotAnInteger:
posts = paginator.page(1)
except EmptyPage:
posts = paginator.page(paginator.num_pages)
return render_to_response('home.html', locals(), context_instance=RequestContext(request))
def single_post(request, slug):
post = get_object_or_404(Post, slug=slug)
return render_to_response('post/post_detail.html', locals(), context_instance=RequestContext(request))
def about_page(request):
return render_to_response(
'about.html'
)
base.html
<div class="head-nav">
<span class="menu"> </span>
<ul class="cl-effect-1">
<li class="active"><a href="/">Home</a></li>
<li><a href="about/">About</a></li>
<li><a href="gaming/">Gaming</a></li>
<li><a href="tech/">Tech</a></li>
<li><a href="404.html">Shortcodes</a></li>
<li><a href="contact.html">Contact</a></li>
<div class="clearfix"></div>
</ul>
</div>
问题是当我在 url http://127.0.0.1:8000/post/post_title
然后我想转到关于页面,然后当我从导航栏点击链接时,它转到http://127.0.0.1:8000/post/post_title/about,这给了我一个 404,但关于页面位于 url http://127.0.0.1:8000/about。
href 或 url 可能有问题,请纠正我。
【问题讨论】:
标签: python html django web url-routing