2

我必须在我的 django 驱动的网站上进行页面。index.htmlbooks.html

我有这个链接到books.html我的第一页

<a href="books.html">books</a>

这个是books.html为了回到第一页。

<a href="index.html">Home</a>

我的 url conf 是这样的

urlpatterns = patterns('',
    url(r'^$', 'mysite.views.home', name='home'),
    url(r'^books.html/$', 'mysite.views.bookpage', name='books'),
    url(r'index.html/$', 'mysite.views.home', name='home'),
)

views.py

def home(request):
        return render_to_response('index.html')

def bookpage(request):
        return render_to_response('books.html')

当我点击第二个链接回家时。我的 url 地址看起来像这样

mysite.com/books.html/index.html/

mysite.com/单击中的第二个链接时,如何将 url 更改回books.html

抱歉,如果标题不合适。我不知道我的问题标题是什么

更新

url(r'^index.html/$', 'mysite.views.home', name='home')已从我的 url 模式中删除并<a href="{% url 'home' %}">在第二页中使用。但是当我点击那个链接时什么也没有发生

4

3 回答 3

3

其他答案中遗漏了两个问题:

  1. ^在第三个网址中缺少 a:url(r'^index.html/$', 'azahra.views.home', name='home'),
  2. 您有两个具有相同name='home'. 其中之一应该改变。

如前所述,您还应该使用{% url 'url_name' %} 模板标签,而不是在模板中进行硬编码。

此外,除非您的应用程序实际命名为 ,否则您mysite需要更改它以引用您的实际视图...

于 2015-03-16T17:22:02.300 回答
3
  1. 使用 Django 不要编写<a href="anything.html">. 您应该使用url模板标签作为页面地址。更多关于url模板标签的信息:https ://docs.djangoproject.com/en/1.7/ref/templates/builtins/#url

例子:<a href="{% url 'home' %}">

  1. 在您的 urls.py 中,您拥有^books.html/$index.html/$. 注意到^索引之前的缺失了吗?您可能想要添加它。

  2. 不要为 urls.py 中的不同模式使用相同的名称。

于 2015-03-16T17:12:27.317 回答
2

你错过了一个^

urlpatterns = patterns('',
    url(r'^$', 'mysite.views.home', name='home'),
    url(r'^books.html/$', 'azahra.views.bookpage', name='books'),
    url(r'^index.html/$', 'azahra.views.home', name='home'),
)

看看url模板标签 - 它会简化您在模板中的 URL 路由并让您远离这些类型的错误。

于 2015-03-16T17:10:54.123 回答