Django HTML重定向但不加载页面

0 投票
1 回答
1882 浏览
提问于 2025-04-19 12:03

我正在创建一个Django网页应用,遇到了一个问题。

我创建了一个新的html页面,叫做teamList.html。当我在主页面点击一个链接时,应该跳转到teamList页面。浏览器中的网址从 http://127.0.0.1:8000/ 变成 http://127.0.0.1:8000/teamList,但是页面内容没有变化,反而重新加载了起始页面。

目前的应用在html中处理登录和主页面的方式是这样的(登录后默认显示一个图表):

#index.html
<body>
<img src="{% static "myApp/images/logo.gif" %}" alt="logo" />

{% if user.is_authenticated %}
<p>currently logged in as: {{ user.first_name }} {{ user.last_name }}
<p><a href="/logout">logout</a>
<p><a href="/teamList">Team List</a>

<div id="radarChart">    
{% block radarChartBlock %}{% endblock %}

</div>


{% else%}

<div id="login">
    {% block login %}{% endblock %}
</div>

{% endif %}

</body>

我的urls.py文件看起来是这样的:

from django.conf.urls import patterns, url
from myApp import views

urlpatterns = patterns('',
#http://localhost:8000/             
url(r'^$', views.index, name='index'),
url(r'^/teamList/$', views.renderTeamList, name='teamList')
)

编辑:我的views.py文件中处理teamList.html的方法是这样的:

from django.shortcuts import render
from django.views.generic.base import TemplateView
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required
from myApp.models import FocusArea
from myApp.tables import TeamTable
from django_tables2 import RequestConfig

def renderTeamList(request):
table = TeamTable()
RequestConfig(request).configure(table)
return render(request, 'teamList.html', {'table': table})

1 个回答

0

除了评论之外,你的 urls.py 文件还有个问题。你为 teamList 这个网址写的规则是以 / 开头的,所以它无法匹配 http://127.0.0.1:8000/teamList。这是因为在Django中,开头的斜杠会被自动处理掉。从文档中可以看到:

其实不需要加开头的斜杠,因为每个网址本身都有这个。比如说,应该写成 ^articles,而不是 ^/articles。

想了解更多细节,可以查看 Django的文档

撰写回答