2016-08-05 33 views
0

如何在django的模板中使用href标签正确路由页面? 我urls.pydjango href标签路由不正确

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问题,所以纠正我。

回答

2

用下面的代码替换你的代码。

<li><a href="{% url 'about_page' %}">About</a></li> 

您已经在您的urls.py中定义了命名的url,请充分利用它。 欲了解更多信息阅读这篇文章,这将帮助你充分利用命名的网址。 Django URL's Dispatcher

+0

工作感谢... + Prateek – rohillasarthak

+0

@rohillasarthak:阅读url的调度程序文档一次,您将了解Django中提供的许多新功能。随时准备提供帮助。 – Prateek