django模板锚标签不起作用

时间:2015-12-16 08:14:13

标签: python django django-templates django-urls

我的网页上有一个标题,标题中有一个标识。我想在该徽标中插入一个锚标记,该标记指向我的主页index.html页面,尽管调用了视图或页面。我创建了一个base.html,其片段是:

<div class="header">
            <div class="inner_header">
                <div class="logo">

                    <a href='#'><img src="{% static 'images/logo.png' %}" alt="logo" /> </a>

                </div>

我已将此base.html扩展到我的所有其他模板文件

指向我的索引页面和其他页面的我的网址格式为:

 urlpatterns = patterns('',
        url(r'^$', views.index, name='index'),
        url(r'^category/(?P<category_name_slug>[\w\-]+)/$', views.category, name='category'),
        url(r'^latest/(?P<latest_title_slug>[\w\-]+)/$', views.latest, name='latest'),
        url(r'^headline/(?P<heading_title_slug>[\w\-]+)/$', views.headline, name='headline'),)

我尝试过使用<a href="index.html">,<a href=''>和其他一些不能产生预期结果或出错的东西。如果不编写大量代码,这样做的适当方法是什么?

1 个答案:

答案 0 :(得分:4)

Rohit Jain关于使用url模板标记的建议是正确的

<a href="{% url 'index' %}">

但它可能有助于了解您当前的方法正在做什么

  • <a href='#'> - 这是尝试链接到您网页上的ID元素,但由于您还没有提供ID名称,因此它只是引用了网页本身。它没有重定向任何地方
  • <a href="index.html"> - 您正在尝试直接引用该模板,您没有将该网址映射到可显示该模板的视图的网址模式
  • <a href=''> - 这与使用#几乎相同,因为您并未更改您追加的链接

您可能会在<a href="/">取得一些成功,但同样,这也不是在django中执行此操作的正确方法,因为您可能会决定将url模式更改为特定视图(即你决定添加i18n模式)所以你总是尝试使用url模板标签。